c# 类对象 - 存储/检索多值列表的最佳方法是什么?

标签 c# arrays list class hashtable

我正在自学如何使用 C# 中的类。我有一个“最好的方法是什么”的问题,希望有经验的人能给我指导。

假设我有一个“老师”的类对象。类(class)有成员,有教师姓名、年级、工资标准等。我还想为他存储一个可变长度的属性列表。如果他在不同的类(class)中扮演不同的角色,就像这样:

English 1A       |  Instructor
English Lit      |  Advisor
Beginning Math   |  Substitute
Study Hall       |  Monitor
English 6b       |  Instructor

我想将此信息存储在他的类对象中,并能够在我的代码中访问它。我尝试过 ArrayList、HashTable 和 List<>(它不允许我存储多个列,我不这么认为),但我的方法都感觉像是笨拙的解决方法。我倾向于这样做:

Storing 2 columns into a List

这个人建议创建一个具有两个成员的类对象,并将该类的新实例存储在列表中。好主意,但同样,它有一种“解决方法”的感觉。

有没有一种“正确”的方法来做我想做的事情?或者有人可以建议一种更直接的方法?任何想法表示赞赏。

最佳答案

This guy suggests creating a class object with two members and storing new instances of the class in a list.

这是最常见的方法。随着时间的推移,您可能希望将字段添加到“角色”的概念中,并且拥有一个专用于它的类可以使这变得容易。

您可以使用更复杂的方法,例如使用 Dictionary、元组列表或 DataTable 将此类信息存储在内存中,但通常仅当您有特定的情况时才会使用这些方法使用它们的理由(例如,您正在建模的内容永远不会有额外的属性/字段,或者您正在从为您返回数据表的 API 中提取数据)。

关于c# 类对象 - 存储/检索多值列表的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73239230/

相关文章:

c# - 将多个参数传递给谓词,函数式编程

c# - 是否可以从 FileResult 获取 byte[]?

c# - 有什么方法可以检查字符串是否为空或空白?

javascript - 如何使用 snap.svg 循环遍历 svg 元素并创建每个路径属性的数组

javascript - 如何在javascript中将数组拆分为单引号和逗号分隔的列表

python - 在 python 列表中查找最大值和索引?

python - 如何将字典的值(列表)与单独的列表进行比较?

c# - C# 中的谷歌几何 Api

java - 字符串无法转换为(类名数据类型)Java

c++ - 错误 : ‘list’ is not a member of ‘std’ and error: template argument 2 is invalid