我正在查看Collection
MSDN 中用于 .Net 框架的类。我遇到了HybridDictionary
它,它指出(http://msdn.microsoft.com/en-us/library/system.collections.specialized.hybriddictionary.aspx):
通过在集合较小时使用 ListDictionary 实现 IDictionary,然后在集合变大时切换到 Hashtable。
所以我想知道ListDictionary
哪些州(http://msdn.microsoft.com/en-us/library/system.collections.specialized.listdictionary.aspx)
推荐用于通常包含少于 10 个项目的集合。
现在这对我来说似乎是任意数量的(项目)。我在文档中找不到这背后的机制是什么,我怀疑性能的边界与许多项目有关,比如 2^N(2 的 N 次方)。
现在我确实Dictionary
经常使用集合类型,集合可能包含 10 到 30 个项目,50 个顶部,具体取决于“页面大小”。
但是HybridDictionary
并且ListDictionary
需要拆箱,并且它们没有通用类型构造函数。
我在任何地方都找不到关于 a HybridDictionary
vs性能的比较Dictionary
。
那么什么时候实际使用它HybridDictionary
而不是其他字典类型呢?
PS如果HybridDictionary
切换到ListDictionary
或HashTable
当项目数量增长以优化其功能。为什么要使用ListDictionary
? 如果软件中的某些要求发生变化,突然最多必须放入 20 项ListDictionary
,而不是最多 10 项,是否必须重构代码HybridDictionary
以保持性能?