存储亲子关系

时间:2013-02-13 19:10:32

标签: c# collections

我想知道在给定父/子(ren)关系的情况下,如何在C#中最好地存储一组值。我已经考虑过Dictionary,KeyValuePair和List,或者可能是定义了一个类。我可能会过度思考这个,但我想确保没有更好的方法。我需要能够快速查找。我的数据集是第一项是“父”,如果你愿意,其余的项与第一项相关。所以:

G   H Y
Z   X A J

G与H和Y有关,Z与X,A和J有关。非常简单。但是如何在C#中最好地存储这些?我可以只有一个数组,其中0索引代表父。有没有更好的方法在C#中存储它?这很像是SQL中的一对多关系。但我必须在代码中完成此任务。我的目标是能够根据父母轻松提取亲属列表。因此,给定G,我应该能够快速获得H和Y.我是否使用数组,列表<> ...还有其他什么?

3 个答案:

答案 0 :(得分:1)

Dictionary<string, string[]>对于你所谈论的内容来说是个不错的选择。

答案 1 :(得分:0)

我建议Lookup<TKey, TValue>http://msdn.microsoft.com/en-us/library/bb460184.aspx)。

  

查找类似于词典。该   区别在于Dictionary将键映射到单个   值,而Lookup将键映射到集合   值。

答案 2 :(得分:0)

我会使用哈希表对象。性能非常简洁,因为键值是计算的哈希值,查找值是通过计算键和直接命中来完成的。

查看将哈希表与词典进行比较的其他帖子。

Which is faster to find an item in a hashtable or in a sorted list?

.NET HashTable Vs Dictionary - Can the Dictionary be as fast?

Why is Dictionary preferred over hashtable?