当所有词典执行类似的功能时,需要三个不同的词典 - OrderedDictionary,ListDictionary和HybridDictionary?
它们都没有被排序,并且可以通过所有这些中的键来检索集合的元素。那么,三个不同类的目的是什么?
答案 0 :(得分:14)
简而言之:
Dictionary
- 好吧,一本字典。
ListDictionary
- 用于小型藏品,通常少于10件
HybridDictionary
- 在集合大小未知时使用(根据集合的大小切换实现)
OrderedDictionary
- 与SortedDictionary<TKey, TValue>
类的元素不同,OrderedDictionary的元素不按键排序。您可以通过键或索引访问元素。
答案 1 :(得分:6)
补充凯尔的回答:
OrderedDictionary允许按键和索引进行检索(它在内部使用哈希表和数组)但每个项目的开销更大
ListDictionary有一个链表作为其内部结构,它不能很好地按键插入和检索,但保留原始的插入顺序
HybridDictionary是一个ListDictionary,如果字典不包含很多项目,并且如果项目数量达到特定限制则转换为Hashtable(我个人认为你应该使用Dictionary&lt;,&gt;而不是C#2之后的<) / p>