.NET のマルチキー辞書
.NET 基本クラス ライブラリでは、通常、辞書は重複キーを許可しません。これにより、複数の値を同じキーに関連付ける必要がある特定のシナリオでは制限が生じる可能性があります。
特殊クラスによる重複の処理
重複キーを処理する 1 つのアプローチは、次のとおりです。カスタム ラッパー クラスを作成します。たとえば、文字列キーとオブジェクトのリストを値として持つ辞書は次のように定義できます。
Dictionary<string, List<object>>
このメソッドは 1 つのキーの下に複数の値を格納する方法を提供しますが、操作が面倒になる可能性があります。特に複数のキーが関係する場合に使用します。
Lookup クラスの使用
.NET 3.5 では、Lookup クラスが辞書内の重複キーの必要性に対処します。このクラスは、従来の辞書のような単一のキーではなく、複数のキーを単一の値に関連付けることができる辞書を表します。
Lookup オブジェクトを作成するには、Enumerable.ToLookup 拡張メソッドを使用できます。既存のシーケンスをルックアップ辞書に追加します。たとえば、次のコードについて考えてみましょう。
var dictionary = Enumerable.ToLookup(list, item => item.Key);
このシナリオでは、辞書には重複したキーがあり、各キーは元のリストの値のシーケンスにマップされます。
制限と代替手段
Lookup クラスは重複キーを処理する便利な方法を提供しますが、次のことに注意することが重要です。辞書は後で変更されないことを前提としています。使用例によっては、これは望ましい制限ではない場合があります。辞書の変更が必要な場合は、別の方法を検討する必要がある場合があります。
以上が.NET 辞書で重複キーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。