汎用 OrderedDictionary の実装
OrderedDictionary の汎用実装は .NET 3.5 では利用できない可能性がありますが、その作成はそれほど複雑ではありません。 KeyedCollection をストレージに利用し、List
インターフェイス
public interface IOrderedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IOrderedDictionary { // ... }
実装
public class OrderedDictionary<TKey, TValue> : IOrderedDictionary<TKey, TValue> { private KeyedCollection2<TKey, KeyValuePair<TKey, TValue>> _keyedCollection; // ... }
ヘルパークラス
public class KeyedCollection2<TKey, TItem> : KeyedCollection<TKey, TItem> { private Func<TItem, TKey> _getKeyForItemDelegate; // ... } public class Comparer2<T> : Comparer<T> { private readonly Comparison<T> _compareFunction; // ... } public class DictionaryEnumerator<TKey, TValue> : IDictionaryEnumerator, IDisposable { // ... }
テスト
[TestClass] public class OrderedDictionaryTests { // ... }
これらのテストは、実装された OrderedDictionary のさまざまな機能を示します。
結論
.NET では提供されない場合がありますが、一般的な OrderedDictionary 実装では、これらのリソースを使用して独自の実装を作成することが、キーベースの検索速度と挿入順序の両方を維持するための実行可能なソリューションです。
以上が.NET 3.5 で汎用 OrderedDictionary を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。