我想知道在给定父/子(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.我是否使用数组,列表<> ...还有其他什么?
答案 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?