OrderedDictionary の実装
汎用 OrderedDictionary の実装は複雑なタスクではありませんが、時間がかかる可能性があり、Microsoft の一部。これを実装するにはさまざまな方法がありますが、1 つのアプローチでは、内部ストレージに KeyedCollection を使用し、List と同様の方法で並べ替えに Key と List のハイブリッドを使用します。
クラス構造
汎用 OrderedDictionary (IOrderedDictionary) のインターフェイスには、汎用と非ジェネリック (System.Collections.Specialized.IOrderedDictionary) インターフェイス。実装クラス (OrderedDictionary) は、KeyedCollection2> 型のプライベート フィールドを持つ KeyedCollectionBase クラスを継承します。
オーバーライドされたメソッド
OrderedDictionary クラスは、IDictionary の両方のメソッドをオーバーライドします。および IOrderedDictionary インターフェイス:
- キーと値の管理に関連するメソッド (Add、Clear、ContainsKey、Remove)
- キーまたはインデックスによって値にアクセスするためのインデクサー プロパティ (this[TKey key]) 、this[intindex])
- 要素の順序を操作するメソッド (Insert、IndexOf、 RemoveAt)
- インデックスによってキーと値のペアを取得または設定するメソッド (GetValue、SetValue、GetItem、SetItem)
- コレクションを反復処理するための列挙子およびプロパティの実装 (GetEnumerator、Count、Keys、値)
並べ替え機能
OrderedDictionary クラスには、組み込みまたはカスタムの比較子を使用して、さまざまな方法でキーまたは値を並べ替えるメソッドが含まれています。
- SortKeys(): キーを自然な順序で並べ替えます。 order.
- SortKeys(IComparer比較子): 並べ替え指定された比較子を使用してキーを並べ替えます。
- SortKeys(Comparison 比較): 指定された比較デリゲートを使用してキーを並べ替えます。
- SortValues(): 値を自然な順序で並べ替えます。
- SortValues(IComparer Comparer): 指定された比較子を使用して値を並べ替えます。
- SortValues(Comparison比較): 指定された比較デリゲートを使用して値を並べ替えます。
追加機能
OrderedDictionary クラスは、次のような機能もサポートしています。として:
- _keyedCollection プロパティを介した内部 KeyedCollection へのアクセス。
- KeyedCollection2 クラスから継承された並べ替えアルゴリズム (SortByKeys、Sort、SortByKeys)。
- ヘルパー メソッドで使用する DictionaryEnumerator を作成するにはIOrderedDictionary.
使用例
提供されているコード例は、OrderedDictionary インスタンスを作成、操作、並べ替える方法を示しています。
- キーと値のペアを使用した OrderedDictionary の作成。
- インデクサーを使用した値の取得と設定
- SortKeys メソッドと SortValues メソッドの使用キーまたは値で辞書を並べ替えます。
- コレクションを列挙して、各キーと値のペアにアクセスします。
結論
一方.NET は、OrderedDictionary の汎用実装をネイティブに提供しません。提供されるコード サンプルは、特定のニーズに合わせて調整できる堅牢な代替手段を提供します。この実装は .NET のコレクション ライブラリのギャップを埋め、キーベースとインデックスベースの両方のアクセスによるデータの効率的かつ組織的な管理を可能にします。
以上が.NET で汎用 OrderedDictionary を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。