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

本文关键字:创建 数据库 获取 实例 一个 列表 包含我 | 更新日期: 2023-09-27 18:00:15

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

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

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

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

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

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

有一些可能性:

  1. 创建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"];
    
  2. 在类中添加唯一字段作为属性

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