对于一对一,我可以使用哈希或字典。例如,史密斯是26岁,布朗是35岁。这很清楚。一对多怎么样?例如,Smith参加class01,class08,class12,Brown参加class01,class05和class08。我有什么选择,什么是最佳选择?
答案 0 :(得分:9)
您仍然可以使用Dictionary
,但您需要将值类型设为集合,即:Dictionary<Person, IList<Class>>
。这将允许您存储每个人的班级列表。
答案 1 :(得分:4)
您可以使用带有列表的词典作为第二种类型。
例如,如果您有Student类和Class类,那么您将拥有
Dictionary<Student, List<Class>>
答案 2 :(得分:1)
您可以使用Lookup<TKey, TValue>
类型。它几乎像字典一样工作,但允许插入相等的键。阅读MSDN文章http://msdn.microsoft.com/en-us/library/bb460184.aspx中的更多内容。
答案 3 :(得分:1)
您可以使用列表作为其值的哈希或字典。例如:
var d = new Dictionary<string,List<string>> {
{ "Smith", new List<string> { "class01", "class08", "class12" } },
{ "Brown", new List<string> { "class01", "class05", "class08" } }
};
答案 4 :(得分:0)
您可以使用
Dictionary<string, List<object>> OneToManyDictionary;
答案 5 :(得分:0)
创建在Person类中定义的实体对象。在类上有属性来表示各种属性和集合。
For example (pseudo-code)
Person class
Age Property (int)
Class Property (List)
... etc.