Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试创建一个包含我创建的类的列表,并从数据库中获取每个实例的名称_C# - Fatal编程技术网

C# 尝试创建一个包含我创建的类的列表,并从数据库中获取每个实例的名称

C# 尝试创建一个包含我创建的类的列表,并从数据库中获取每个实例的名称,c#,C#,我在数据库中有一个表,我想将其放入列表中。我创建了一个类,它有一个字符串或int值,对应于数据库中的每个字段。(该类没有任何方法,它只保存数据。) 使用读取器,我可以从数据库中获取每条记录并将其添加到列表中,但是列表中的每个类实例都具有相同的名称,因此我无法使用IndexOf方法访问它。数据库中的每个记录都有一个唯一的名称,我想用这个唯一的名称来命名我在C#List中插入的类的每个实例 我见过关于使用反射的讨论,但阅读它也不是一个好方法。大多数答案倾向于Activator.CreateInsta

我在数据库中有一个表,我想将其放入列表中。我创建了一个类,它有一个字符串或int值,对应于数据库中的每个字段。(该类没有任何方法,它只保存数据。)

使用读取器,我可以从数据库中获取每条记录并将其添加到列表中,但是列表中的每个类实例都具有相同的名称,因此我无法使用IndexOf方法访问它。数据库中的每个记录都有一个唯一的名称,我想用这个唯一的名称来命名我在C#List中插入的类的每个实例

我见过关于使用反射的讨论,但阅读它也不是一个好方法。大多数答案倾向于Activator.CreateInstance,但我没有找到一个有效的示例,我可以看到如何引用类的实例来定义成员

我有一个字符串名,它来自数据库,是用户在其他地方定义的,但我不能将该记录作为类复制到列表中,因此我可以引用该类的成员,而不必不断打开数据库


或者,在列表中查找某个记录的方法,其中列表中的类的成员是某个值,我可以让列表中的每个类都具有相同的名称。我找到的列表示例使用int和string作为示例,因此没有任何成员可供查看

有一些可能性:

  • 创建
    词典
    。在键中,输入唯一的名称:

    Dictionary<string, Class> d = new Dictionary<string, Class>();
    d.Add("unique name from db", instanceOfClass);
    
    Class c = d["unique name from db"];
    
    Dictionary d=newdictionary();
    d、 添加(“来自db的唯一名称”,InstanceOffClass);
    类别c=d[“来自db的唯一名称”];
    
  • 在类中添加唯一字段作为属性

  • 创建另一个唯一标识符,如主键或类似的东西

  • 索引您的唯一名称,并将属性添加到类中以容纳此名称。在添加新列表项之前,请确保填充了名称。所谓索引,我的意思是:reader[“name of column containing unique value”]对于歧义,很抱歉。或者,您可以使用一个字典,您可以使用它根据您的唯一列添加项,然后为字典编制索引。someDictionary[“一个惟一的值”]来获取元组/行。谢谢你为我指明了正确的方向。这本词典正在使用中。我只想到字典中的两个字符串值,而不是我创建的字符串和类。在我的例子中,我现在使用一个int和我的自定义类,看起来它将非常有效。谢谢你的帮助。