首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典还是KeyedCollection?

字典还是KeyedCollection?
EN

Stack Overflow用户
提问于 2011-09-27 17:09:19
回答 6查看 23.5K关注 0票数 62

我有一个包含string类型的属性Name的类(SomeClass)。我需要存储该类的一个数组,并根据它们的名称查找它们的项。为此,有两种类型的集合:KeyedCollectionDictionary。我的问题是:它们之间有什么区别,在这种情况下,使用KeyedCollectionDictionary更好?感谢您的任何帮助的解释。

EN

回答 6

Stack Overflow用户

发布于 2012-08-04 04:28:01

前面的注释都没有解决两者之间最重要的区别: KeyedCollection保持项目的添加顺序(添加的第一个项目在索引0处,最后添加的项目在最后一个索引处)。字典不会(或者至少它永远不会保证这样做)。

KeyedCollection的这一额外优势确实具有很小的性能成本。在幕后,您需要支付维护一个字典和一个列表的费用。

票数 81
EN

Stack Overflow用户

发布于 2011-09-27 17:13:03

这里很好地解释了字典和KeyedCollection之间的差异:http://geekswithblogs.net/NewThingsILearned/archive/2010/01/07/using-keyedcollectionlttkey-titemgt.aspx

要点是:

  • KeyedCollection是抽象的,所以你不能使用它directly.
  • KeyedCollection在情况下很有用,当键在实体本身中时,你可以在集合中封装键检索implementation.
  • There是KeyedCollection的通用实现(虽然不在框架中),它允许你在集合构造函数中粘贴键检索委托,所以你不必在每次添加项时重复它。

更新:只要文章的原始链接被删除,就会添加到web存档的链接:https://web.archive.org/web/20200228045828/http://geekswithblogs.net/NewThingsILearned/archive/2010/01/07/using-keyedcollectionlttkey-titemgt.aspx

票数 19
EN

Stack Overflow用户

发布于 2014-09-19 18:09:23

KeyedCollection允许使用可变密钥和管理密钥更改的方法。字典不允许更改键。其次,如果你有一个需要查找的集合,从实体中提取关键字的逻辑仍然保留在一个地方-而维护字典将需要将关键字提取逻辑放在每个向字典添加项/从字典中删除项的位置。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7566657

复制
相关文章

相似问题

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