我应该将词典用于10个或更少项目的集合,还是有更好的选择?

Mik*_*erg 13 .net c# collections dictionary data-structures

我有一个对象列表,我需要尽快找到一个对象(通过它的名称属性).我应该使用什么数据结构?我知道我可以使用一个字典,但是列表中不会有超过10个项目,如果我没记错的话,如果集合包含10个或更少的项目,则字典被实现为数组.

谢谢.

Ada*_*ear 11

对于包含10个或更少项目的集合,MSDN建议使用ListDictionary:

这是使用单链表的IDictionary的简单实现.如果元素的数量是10或更少,它比Hashtable更小和更快.如果性能对于大量元素很重要,则不应使用此方法.

  • 由于ListDictionary不是通用的,因此该建议可能已过时.文件说从一开始就说. (9认同)

Pau*_*ane 5

您可能想要考虑System.Collections.Specialized.ListDictionary如果您确定将少于十个项目.

另外还要考虑System.Collections.Specialized.HybridDictionary其开关行为(用小的开销)应该尺寸的增加高于阈值,方便的,如果你的假设是错误的.