对于一对一,我可以使用哈希或字典。例如,史密斯 26 岁,布朗 35 岁。这很清楚。一对多呢?例如,Smith 正在上 class01、class08、class12,而 Brown 正在上 class01、class05 和 class08。我的选择是什么,最好的选择是什么?
问问题
1125 次
6 回答
9
您仍然可以使用 a Dictionary
,但您需要将值类型设置为集合,即:Dictionary<Person, IList<Class>>
。这将允许您存储每个人的班级列表。
于 2012-08-30T19:29:10.840 回答
4
您可以使用带有列表的字典作为第二种类型。
例如,如果您有一个 Student 类和一个 Class 类,您将有一个
Dictionary<Student, List<Class>>
于 2012-08-30T19:29:04.470 回答
1
您可以使用Lookup<TKey, TValue>
类型。它几乎像字典一样工作,但允许插入相等的键。阅读 MSDN 文章http://msdn.microsoft.com/en-us/library/bb460184.aspx了解更多信息。
于 2012-08-30T19:29:47.577 回答
1
您可以使用列表作为其值的散列或字典。例子:
var d = new Dictionary<string,List<string>> {
{ "Smith", new List<string> { "class01", "class08", "class12" } },
{ "Brown", new List<string> { "class01", "class05", "class08" } }
};
于 2012-08-30T19:30:08.277 回答
0
您可以使用
Dictionary<string, List<object>> OneToManyDictionary;
于 2012-08-30T19:31:03.500 回答
0
创建在 Person 类中定义的实体对象。在类上有属性来表示各种属性和集合。
For example (pseudo-code)
Person class
Age Property (int)
Class Property (List)
... etc.
于 2012-08-30T19:33:42.740 回答