我在数据库中有一个表,我想进入一个列表。我创建了一个Class I,它有一个字符串或int值,对应于数据库中的每个字段。 (该类没有任何方法,它只保存数据。)
使用阅读器我可以从数据库中获取每条记录并将其添加到列表中,但列表中每个类的实例始终具有相同的名称,因此我无法使用IndexOf方法访问它。数据库中的每条记录都有一个唯一的名称,我想使用该唯一名称来命名我在C#List中插入的类的每个实例。
我已经看到过使用反射的说法,但是阅读它并不是一个好方法。大多数答案都倾向于Activator.CreateInstance,但我找不到一个有效的例子,我可以看到如何引用类的实例然后定义成员。
我有一个来自数据库的字符串名称,并且是用户在其他地方定义的,但我无法在列表中复制该记录,因此我可以引用该类的成员而无需经常打开数据库。
或者,一种在列表中查找列表中记录的记录的方法是可行的,并且我可以让列表中的每个类具有相同的名称。我找到的列表示例使用int和strings作为示例,因此没有任何成员可以查看。
答案 0 :(得分:0)
有一些可能性:
创建Dictionary<string, Class>
。在密钥中,您可以使用唯一的名称:
Dictionary<string, Class> d = new Dictionary<string, Class>();
d.Add("unique name from db", instanceOfClass);
Class c = d["unique name from db"];
在您的班级中添加唯一字段作为属性