结束了这个糟糕的数据结构:
List<KeyValuePair<string, KeyValuePair<string, string>>>
Run Code Online (Sandbox Code Playgroud)
它不太可能变得很大(我估计<1K)并且我将一遍又一遍地重复这个列表.
任何人都可以想到内置类型的更好的选择?
kem*_*002 10
struct MrStruct
{
public string Key1,
public string Key2,
public string Value1
}
List<MrStruct>;
Run Code Online (Sandbox Code Playgroud)
这假设您按顺序访问列表,就像您说迭代一样.潜在地,其他数据结构可以更快地进行搜索.
Ree*_*sey 10
最好的选择是包装你自己的Tuple类,有点像.NET 4.0中的那个.
然后你可以有一个:
List<Tuple<string,string,string>>
Run Code Online (Sandbox Code Playgroud)
这很容易用.NET 2.0编写 - 它基本上只是一个三元组的值,而不是KeyValuePair中的2.但是,.NET 2.0中的三元组值没有内置等效.
编辑:
在阅读了关于在另一篇文章中查询的评论后,我想我也会提到这一点 -
即使您在key1中没有唯一值,也可以使用以下方法显着加快任何类型的查询/搜索:
Dictionary<string, List<KeyValuePair<string,string>>>
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过第一个元素中的键查找它们的列表,而不是存储单个KeyValuePair.如果您需要使用给定的第一个键找到所有元素,这将会更快,更快...
| 归档时间: |
|
| 查看次数: |
7507 次 |
| 最近记录: |