【发布时间】:2009-06-24 16:46:06
【问题描述】:
最终得到了这个糟糕的数据结构:
List<KeyValuePair<string, KeyValuePair<string, string>>>
它不太可能变得庞大(我估计
谁能想到一些更好的内置类型替代方案?
【问题讨论】:
-
这个问题的答案可能会有所帮助stackoverflow.com/questions/101825/…
最终得到了这个糟糕的数据结构:
List<KeyValuePair<string, KeyValuePair<string, string>>>
它不太可能变得庞大(我估计
谁能想到一些更好的内置类型替代方案?
【问题讨论】:
最好的选择是包装你自己的 Tuple 类,有点像shipping in .NET 4.0。
那么你可以有一个:
List<Tuple<string,string,string>>
这很容易在 .NET 2.0 中编写 - 它基本上只是三个值,而不是 KeyValuePair 中的 2。不过,.NET 2.0 中没有内置的三元组值等效项。
编辑:
在阅读了您在另一篇文章中关于查询的评论后,我想我也会提到这一点 -
即使您在 key1 中没有唯一值,您也可以通过以下方式显着加快任何类型的查询/搜索:
Dictionary<string, List<KeyValuePair<string,string>>>
然后,您可以通过第一个元素中的键查找它们的列表,而不是存储单个 KeyValuePair。如果您需要使用给定的第一个键查找所有元素,这将快得多...
【讨论】:
struct MrStruct
{
public string Key1,
public string Key2,
public string Value1
}
List<MrStruct>;
这是假设您按照您所说的迭代顺序访问列表。潜在地,其他数据结构的搜索速度可能更快。
【讨论】: