最终得到了这个糟糕的数据结构:
这段文本的翻译如下:
List<KeyValuePair<string, KeyValuePair<string, string>>>
这段文本的翻译如下:
它不太可能变得非常庞大(我估计小于1K),我将一遍又一遍地迭代这个列表。
有没有人能想到一些更好的内置类型的替代方案?
List<KeyValuePair<string, KeyValuePair<string, string>>>
它不太可能变得非常庞大(我估计小于1K),我将一遍又一遍地迭代这个列表。
有没有人能想到一些更好的内置类型的替代方案?
struct MrStruct
{
public string Key1,
public string Key2,
public string Value1
}
List<MrStruct>;
假设您像迭代一样顺序访问列表。可能会有其他数据结构更适合搜索。
最好的选择是自己包装一个Tuple类,就像.NET 4.0中提供的那个一样。
这样你就可以拥有一个单一的:
List<Tuple<string,string,string>>
这在.NET 2.0中非常容易编写 - 它基本上只是三个值的组合,而不是在一个KeyValuePair中有两个值。然而,在.NET 2.0中没有内置的三元值等效物。
编辑:
在阅读您在另一篇帖子中有关查询的评论后,我认为还应该提到以下内容 -
即使key1中没有唯一值,您仍可以通过使用以下方法极大地加速任何类型的查询/搜索:
Dictionary<string, List<KeyValuePair<string,string>>>
那么,不要存储单个KeyValuePair,而是通过第一个元素中的密钥查找它们的列表。如果您需要查找具有给定第一个键的所有元素,则这将快得多...