9

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

重複するキーを持つことができる辞書の種類のクラスを探しています。

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

しかし、最初は LookUp オブジェクトを初期化できるオブジェクトはありません。

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

4

3 に答える 3

19

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

List<KeyValuePair<string,int>>
于 2012-11-01T20:10:35.097 に答える
12

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

于 2012-11-01T20:10:48.570 に答える
3

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

そのクラスから継承するクラスを作成し、特定のキーの最初の項目の新しいリストの作成を処理する適切な追加メソッドなどを追加できます。

于 2012-11-01T20:14:20.107 に答える