用于此目的的最佳数据结构是什么?

时间:2015-03-30 04:32:40

标签: c# list dictionary

我必须存储3个值A,B和C的列表.A和B是一对值。 C包含两个描述记录内容的值,我们只说1和2。

出于我的目的,我将不断查找A和/或B以查看值是否存在或该对是否存在。

C仅在处理结束时用于将其拆分为两个列表。

进一步解释数据的含义 - > A和B只是ID,C是Merge和Demerge之类的动作。 所以它看起来像这样:

1,2,合并

3,4,Demerge

我有一堆规则要求我查询下一个A或B是否存在于'任何'ID中,或者A和B是否是记录中的一对

使用a会更好吗?     List<Tuple<A,B,C>> or Dictionary<Tuple<A,B>,C>

由于

2 个答案:

答案 0 :(得分:0)

在这种情况下,Dictionary似乎更适合您。正如您所说,您之前不关心C值,也不是您唯一键的一部分。字典会强制您只为任何给定的Tuple<A,B>提供一个条目,这似乎是您喜欢的(因为您只检查值或元组是否已经存在)。 List允许您有重复的条目。

根据您的要求,您可以创建一个类来更好地表示此对象(以避免来自Dictionary的额外开销,因为您似乎正在使用其功能的一小部分)。例如,您是否需要迭代每个Tuple

答案 1 :(得分:0)

我最终使用了DataTable,它可以完美地访问我需要的任意数量的列,也可以用于更新,删除等。