繁体   English   中英

我应该对少于10个项目的收藏使用词典吗,还是有更好的选择?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM