我有一个对象列表,我需要尽快找到一个对象(通过它的名称属性)。我应该使用什么数据结构?我知道我可以使用字典,但列表中不会有超过10个项目,如果我没记错的话,如果集合包含10个或更少的项目,字典就会被实现为数组。
感谢。
答案 0 :(得分:11)
对于包含10个或更少项目的集合,MSDN建议使用ListDictionary:
这是使用单链表的IDictionary的简单实现。如果元素的数量是10或更少,它比Hashtable更小和更快。如果性能对于大量元素很重要,则不应使用此方法。
答案 1 :(得分:5)
如果您确定不到十件商品,您可能需要考虑System.Collections.Specialized.ListDictionary
。
如果你的假设是错误的,那么考虑大小增加超过阈值的System.Collections.Specialized.HybridDictionary
会切换行为(开销很小)。
答案 2 :(得分:2)
由于您希望通过属性尽可能快地查找,因此您应该使用Dictionary<Key, Value>
。如果你想快速查找,大小不会伤害你。不只是10件或更少的Dictionary<Key, Value>
占用了大量的内存。 Dictionary<Key, Value>
有一个构造函数,它接受一个int来设置容量。
答案 3 :(得分:0)
为什么不使用Hashtable?它位于System.Collections命名空间中。