web-dev-qa-db-ja.com

キーが重複している辞書

重複の可能性:
重複を許可するDictionary/SortedListの代替手段はありますか?

キーが重複する可能性のある辞書のようなクラスを探しています。

それについて検索したところ、LookUpクラスを使用して重複キーを格納できることがわかりましたが、デフォルトのコンストラクターがないため、LookUpの他のオブジェクトがないと初期化できません。

しかし、最初はルックアップオブジェクトを初期化できるようなオブジェクトはありません。

だから、私の質問は、.Net Framework 3.5に、辞書のように動作するが、LookUpのように重複するキーを持つことができるクラスはありますか?

9
Yograj Gupta

ディクショナリは、定義上、同じ値を持つ複数のキーを持つことはできません。 (キーを検索した場合、何を返しますか?)参照しているルックアップでさえ、それを許可していません。 canすることは、各キーに複数の値(技術的にではなく論理的に)を参照させることです。これは、値がその特定のキーに対応するすべての値を含むある種のデータ構造(たとえば、List)であるディクショナリを持つことによって行われます。

12
Servy

キーと値のペアのリストを作成できます。

List<KeyValuePair<string,int>>
19
madeFromCode

リストの辞書を使用して、自分で型を作成できます。Dictionary<TKey, List<TValue>>

そのクラスを継承するクラスを作成し、特定のキーの最初のアイテムの新しいリストの作成を処理する適切なadd-methodsなどを追加できます。

3
Albin Sunnanbo