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

KeyValuePair VS DictionaryEntry
EN

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

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

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

EN

回答 2

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提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/905424

复制
相关文章

相似问题

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