ホームページ > バックエンド開発 > C++ > .NET 3.5 で汎用 OrderedDictionary を実装するにはどうすればよいですか?

.NET 3.5 で汎用 OrderedDictionary を実装するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 11:17:10
オリジナル
241 人が閲覧しました

How to Implement a Generic OrderedDictionary in .NET 3.5?

汎用 OrderedDictionary の実装

OrderedDictionary の汎用実装は .NET 3.5 では利用できない可能性がありますが、その作成はそれほど複雑ではありません。 KeyedCollection をストレージに利用し、List などの項目を並べ替えるさまざまなメソッドを実装できます。これにより、IList と IDictionary のハイブリッドが効果的に作成されます。

インターフェイス

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート