OrderedDictionary,ListDictionary和HybridDictionary有什么需要?`

Bat*_*rry 10 .net c# collections

当所有这些词典执行类似的功能时,需要三个不同的词典 - OrderedDictionary,ListDictionary和HybridDictionary?

它们都没有被排序,并且可以通过所有这些中的键来检索集合的元素.那么,三个不同类的目的是什么?

Kyl*_*ndo 14

简而言之:

  • 这是一篇很好的文章......但是OrderedDictionary的需求是什么呢,还是关心我? (2认同)

vc *_* 74 6

为了补充凯尔的答案:

OrderedDictionary允许按键和索引进行检索(它在内部使用哈希表和数组),但每个项目的开销更大

ListDictionary有一个链表作为其内部结构,它不能很好地按键插入和检索,但保留原始的插入顺序

如果字典不包含很多项目,HybridDictionary是一个ListDictionary,如果项目数量达到特定限制,则转换为Hashtable(我个人认为你应该使用Dictionary <,>而不是C#2以后的字典)

  • 不要忘记“ListDictionary”和“OrderedDictionary”之间的主要区别,前者不保留顺序,而后者则保留。`ListDictionary` 命名有点混乱(我认为当你有混合版本时不需要)。 (2认同)