
[英]What should I use as an alternative to System.Collections.Concurrent.ConcurrentDictionary (3.5)
[英]Should I use a Dictionary for collections with 10 items or less, or is there a better alternative?
我有一个对象列表,我需要尽快找到一个对象(通过其name属性)。 我应该使用什么数据结构? 我知道我可以使用字典,但是列表中不会有超过10个项目,如果我没记错的话,如果集合包含10个或更少的项目,则该字典将作为数组实现。
谢谢。
MSDN建议将ListDictionary用于10个项目或更少的集合:
这是使用单链表的IDictionary的简单实现。 如果元素的数量为10个或更少,则它比Hashtable较小且更快。 如果性能对于大量元素很重要,则不应使用此方法。
如果您确定少于10个项目,则可能需要考虑System.Collections.Specialized.ListDictionary
。
还要考虑System.Collections.Specialized.HybridDictionary
,如果大小增加到阈值以上,该行为将切换行为(开销很小),如果您的假设是错误的,则非常方便。
由于希望通过属性进行最快的查找,因此应使用Dictionary<Key, Value>
。 如果您想快速查找,大小不会对您造成伤害。 并非只有10个项目或更少的Dictionary<Key, Value>
占用大量内存。 Dictionary<Key, Value>
具有一个采用int设置容量的构造函数。
为什么不只使用哈希表? 它在System.Collections命名空间中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.