我有一个包含string类型的属性Name的类(SomeClass)。我需要存储该类的一个数组,并根据它们的名称查找它们的项。为此,有两种类型的集合:KeyedCollection和Dictionary。我的问题是:它们之间有什么区别,在这种情况下,使用KeyedCollection和Dictionary更好?感谢您的任何帮助的解释。
发布于 2012-08-04 04:28:01
前面的注释都没有解决两者之间最重要的区别: KeyedCollection保持项目的添加顺序(添加的第一个项目在索引0处,最后添加的项目在最后一个索引处)。字典不会(或者至少它永远不会保证这样做)。
KeyedCollection的这一额外优势确实具有很小的性能成本。在幕后,您需要支付维护一个字典和一个列表的费用。
发布于 2011-09-27 17:13:03
这里很好地解释了字典和KeyedCollection之间的差异:http://geekswithblogs.net/NewThingsILearned/archive/2010/01/07/using-keyedcollectionlttkey-titemgt.aspx
要点是:
更新:只要文章的原始链接被删除,就会添加到web存档的链接:https://web.archive.org/web/20200228045828/http://geekswithblogs.net/NewThingsILearned/archive/2010/01/07/using-keyedcollectionlttkey-titemgt.aspx
发布于 2014-09-19 18:09:23
KeyedCollection允许使用可变密钥和管理密钥更改的方法。字典不允许更改键。其次,如果你有一个需要查找的集合,从实体中提取关键字的逻辑仍然保留在一个地方-而维护字典将需要将关键字提取逻辑放在每个向字典添加项/从字典中删除项的位置。
https://stackoverflow.com/questions/7566657
复制相似问题