首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyValuePair VS DictionaryEntry

KeyValuePair VS DictionaryEntry
EN

Stack Overflow用户
提问于 2009-05-25 05:20:23
回答 3查看 96.8K关注 0票数 127

作为通用版本的KeyValuePair与DictionaryEntry有什么不同?

为什么在泛型字典类中使用KeyValuePair而不是DictionaryEntry?

EN

回答 3

Stack Overflow用户

发布于 2009-05-25 05:46:23

KeyValuePair<TKey,TValue>被用来代替DictionaryEntry,因为它是泛化的。使用KeyValuePair<TKey,TValue>的好处是我们可以为编译器提供更多关于我们字典中内容的信息。扩展克里斯的例子(在这个例子中,我们有两个包含<string, int>对的字典)。

代码语言:javascript
复制
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in dict) {
  int i = item.Value;
}

Hashtable hashtable = new Hashtable();
foreach (DictionaryEntry item in hashtable) {
  // Cast required because compiler doesn't know it's a <string, int> pair.
  int i = (int) item.Value;
}
票数 116
EN

Stack Overflow用户

发布于 2009-05-25 05:24:06

KeyValuePair < T,T >用于遍历字典< T,T>。这是.Net 2(以及更高版本)的工作方式。

DictionaryEntry用于遍历HashTables。这是.Net 1的工作方式。

下面是一个例子:

代码语言:javascript
复制
Dictionary<string, int> MyDictionary = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in MyDictionary)
{
  // ...
}

Hashtable MyHashtable = new Hashtable();
foreach (DictionaryEntry item in MyHashtable)
{
  // ...
}
票数 53
EN

Stack Overflow用户

发布于 2021-07-31 07:25:12

这就是这个问题的解释。请参阅以下链接:

https://www.manojphadnis.net/need-to-know-general-topics/listkeyvaluepair-vs-dictionary

List< KeyValuePair >

  1. Lighter

在List中插入

  1. 的速度更快

  1. 搜索比Dictionary

可以序列化为XMLSerializer的

  1. 无法更改键和值。Keyvaluepair只能在创建过程中赋值。如果要更改,请删除并在同一位置添加新项目。

Dictionary

  1. Heavy

  1. 插入较慢。必须计算哈希

由于哈希,

  1. 搜索速度更快。

无法序列化

  1. 。需要自定义代码。

  1. 您可以更改和更新字典。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/905424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档