2011-01-07 5 views
8

OrderedDictionary、ListDictionary、HybridDictionaryの3つの辞書が必要です。いずれもソートされていないので、コレクションの要素はすべてのキーでキーで取り出すことができます。だから、3つのクラスの目的は何ですか?OrderedDictionary、ListDictionary、HybridDictionaryの必要性

は、一言で言えばあなたに

答えて

11

ありがとう:

  • Dictionary - まあ、辞書。

  • ListDictionary - 小さなコレクション、典型的には10未満のアイテム

  • HybridDictionaryために使用 - 回収サイズが不明な場合に使用が

  • OrderedDictionary(コレクションのサイズに応じて実装を切り替えます) - OrderedDictionaryの要素は、SortedDictionary<TKey, TValue>クラスの要素とは異なり、キーによってソートされません。キーまたはインデックスのいずれかで要素にアクセスできます。カイルの答えを補完するために

+2

これはいい記事です...しかし、OrderedDictionaryの必要性はまだあります私に心配? – Batrickparry

+1

@Novice - 申し訳ありませんが、それを逃しました - 今、さらに情報を追加してください。 –

+0

私の推測では、キーが注文されています。 –

6

OrderedDictionaryキーとインデックスで検索することができます(それは内部的にハッシュテーブルを使用して、配列)が、項目ごとに大きなオーバーヘッドが

ListDictionaryはとしてリンクされたリストを持っていますその内部構造では、キーによる挿入と検索ではうまく機能しませんが、元の挿入順序を維持します。

HybridDictionaryは辞書に多くの項目が含まれず、Hashta (私は個人的には、C#2以降、代わりにという辞書を使うべきだと思う)

+0

'ListDictionary'と' OrderedDictionary'の主な違いを忘れてはいけません。前者は順序を保持しません。 'ListDictionary'という名前はちょっと混乱します(あなたがハイブリッドバージョンを持っていると私の意見では必要ありません)。 – nawfal