【问题标题】:What is the need of OrderedDictionary, ListDictionary, and HybridDictionary?`OrderedDictionary、ListDictionary 和 HybridDictionary 需要什么?
【发布时间】:2011-01-07 06:38:28
【问题描述】:

三个不同的字典——OrderedDictionary、ListDictionary 和 HybridDictionary,当它们都执行类似的功能时,它们需要什么?

它们都没有排序,集合的元素可以通过键检索到所有的元素。那么,三个不同的类的目的是什么?

【问题讨论】:

    标签: c# .net collections


    【解决方案1】:

    简而言之:

    【讨论】:

    • 这是一篇好文章...但是 OrderedDictionary 有什么需要,我还担心吗??
    • @Novice - 抱歉,错过了 - 现在添加更多信息。
    • 我的猜测是键是有序的。
    • @Novice:有序字典提供的唯一功能是通过索引访问存储的元素。我真的想不出一个简单的例子为什么可能需要它。事实上,我从来没有机会在代码中使用它。不知何故,这对我来说就像一个黑客:)
    • nope...没有订购钥匙 Tomas...我自己通过一个简单的程序检查了它!
    【解决方案2】:

    补充凯尔的回答:

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

    ListDictionary的内部结构是链表,在key的插入和检索方面表现不佳,但保留了原来的插入顺序

    HybridDictionary 如果字典不包含很多项目,则为 ListDictionary,如果项目数量达到特定限制,则转换为 Hashtable(我个人认为,从 C#2 开始,您应该使用 Dictionary 而不是它)

    【讨论】:

    • 不要忘记ListDictionaryOrderedDictionary 之间的主要区别,前者不保留顺序,而后者则保留。 ListDictionary 命名有点混乱(我认为当你有混合版本时不需要)。
    猜你喜欢
    • 2013-05-17
    • 2021-03-14
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多