对于相同类型,KeyValuePair列表和Dictionary之间有什么区别?是否有适当的时间使用其中一个?
Pav*_*aev 72
当您不需要快速查找密钥时 - 维护所使用的哈希表Dictionary具有一定的开销.
Mir*_*lec 21
Dictionary是包含键值对集合的泛型类型.字典对于查找操作来说很快,因为内部使用了哈希函数.这意味着,所有键在字典中必须是唯一的.
考虑这个例子:
List<KeyValuePair<int, string>> pairs = new List<KeyValuePair<int, string>>();
pairs.Add(new KeyValuePair<int, string>(1, "Miroslav"));
pairs.Add(new KeyValuePair<int, string>(2, "Naomi"));
pairs.Add(new KeyValuePair<int, string>(2, "Ingrid"));
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "Miroslav");
dict.Add(2, "Naomi");
dict.Add(2, "Ingrid"); // System.ArgumentException: An item with the same key has already been added.
Run Code Online (Sandbox Code Playgroud)
所以你应该总是考虑至少两件事:
And*_*ico 14
当您关心物品的顺序时,列表也很有用.
在Silverlight的SOAP webservices中,我们发现Dictionary没有序列化.在这种情况下,您可以在Dictionary上使用KeyValuePair列表.
.
| 归档时间: |
|
| 查看次数: |
32490 次 |
| 最近记录: |