最终得到了这个糟糕的数据结构:
List<KeyValuePair<string, KeyValuePair<string, string>>>它不太可能变得很大(我估计小于1000),我会一遍又一遍地迭代这个列表。
有没有人能想到内置类型的更好的替代方案?
发布于 2009-06-24 16:48:48
最好的选择是包装您自己的元组类,有点像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。如果您需要查找具有给定第一个键的所有元素,这将会快得多……
发布于 2009-06-24 16:48:33
struct MrStruct
{
public string Key1,
public string Key2,
public string Value1
}
List<MrStruct>;这是假设您按照您所说的iterate over顺序访问列表。潜在地,其他数据结构可以更快地进行搜索。
https://stackoverflow.com/questions/1039563
复制相似问题