Collection
.Net フレームワークの MSDNのクラスを見ています。私はに遭遇し、HybridDictionary
それは述べています(http://msdn.microsoft.com/en-us/library/system.collections.specialized.hybriddictionary.aspx):
コレクションが小さい間は ListDictionary を使用して IDictionary を実装し、コレクションが大きくなったら Hashtable に切り替えます。
ListDictionary
だから私は州について疑問に思いました( http://msdn.microsoft.com/en-us/library/system.collections.specialized.listdictionary.aspx)
通常、アイテムが 10 未満のコレクションに推奨されます。
これは、任意の数 (アイテム) のように思えます。ドキュメントには、この背後にあるメカニズムが何であるかを見つけることができません。パフォーマンスの境界は、2^N (2 の N 乗) のようないくつかの項目に関連していると思われます。
現在、私はコレクション タイプをDictionary
頻繁に使用しています。コレクションには、「ページ サイズ」に応じて、10 から 30 のアイテム、50 のトップが含まれる場合があります。
ただしHybridDictionary
、ListDictionary
ボックス化解除が必要であり、それらのジェネリック型コンストラクターはありません。
HybridDictionary
a vsのパフォーマンスについての比較はどこにも見つかりませんDictionary
。
では、実際にこれHybridDictionary
を他の辞書型よりもいつ使用するのでしょうか?
PSそして、その機能を最適化するためにアイテムの数が増えたときにHybridDictionary
切り替えたListDictionary
場合。HashTable
なぜこれまで使用するのListDictionary
ですか?ソフトウェアの一部の要件が変更され、突然、最大 10 個のアイテムではなく最大 20 個のアイテムを に配置する必要がある場合、パフォーマンスを維持するためにListDictionary
コードをリファクタリングする必要がありますか?HybridDictionary