2

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

G   H Y
Z   X A J

G 与 H 和 Y 有关,Z 与 X、A 和 J 有关。很简单。但是我如何最好地将这些存储在 C# 中?我可以有一个数组,其中 0 索引代表父级。在 C# 中有更好的方法来存储它吗?这很像 SQL 中的一对多关系。但我必须在代码中完成这一点。我的目标是能够轻松地根据父母拉出亲属名单。所以,给定 G,我应该很快就能得到 H 和 Y。我是否使用数组、List<>... 其他东西?

4

3 回答 3

1

Dictionary<string, string[]>对于您正在谈论的内容,这将是一个不错的选择。

于 2013-02-13T19:14:54.633 回答
0

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

查找类似于字典。不同之处在于 Dictionary 将键映射到单个值,而 Lookup 将键映射到值的集合。

于 2013-02-13T19:15:39.010 回答
0

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

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

在哈希表或排序列表中查找项目哪个更快?

.NET HashTable Vs Dictionary - 字典可以这么快吗?

为什么字典比哈希表更受欢迎?

于 2013-02-13T19:20:05.567 回答