Wörterbuch mit doppelten Schlüssel [duplizieren]

8

Ich suche nach einer Wörterbuchklasse, die doppelte Schlüssel haben kann.

Ich suche danach und finde, dass die LookUp-Klasse doppelte Schlüssel speichern kann, aber sie hat keinen Standardkonstruktor. Daher können wir sie nicht ohne ein anderes Objekt auf LookUp initialisieren.

Aber ich habe zunächst kein solches Objekt, von dem ich ein LookUp-Objekt initialisieren kann.

Meine Frage ist also: Gibt es eine Klasse in .Net Framework 3.5, die sich wie Dictionary verhält, aber mir erlaubt, doppelte Schlüssel wie LookUp zu haben?

    
Yograj Gupta 01.11.2012, 20:08
quelle

3 Antworten

12

Ein Wörterbuch kann per Definition niemals mehrere Schlüssel mit demselben Wert haben. (Wenn du einen Schlüssel nachgeschlagen hättest, was würdest du zurückgeben?) Selbst ein Lookup, auf das du dich beziehst, erlaubt es nicht. Was Sie tun können ist, dass sich jeder Schlüssel auf mehrere Werte bezieht (logisch, nicht technisch). Dies geschieht durch ein Wörterbuch, in dem der Wert eine Datenstruktur irgendeiner Art ist (z. B. List ), die alle Werte enthält, die diesem bestimmten Schlüssel entsprechen.

    
Servy 01.11.2012, 20:10
quelle
19

Sie könnten eine Liste von Schlüsselwertpaaren erstellen.

%Vor%     
madeFromCode 01.11.2012 20:10
quelle
3

Sie können einen Typ selbst erstellen, indem Sie ein Wörterbuch mit Listen verwenden, Dictionary<TKey, List<TValue>>

Sie können eine Klasse erstellen, die von dieser Klasse erbt, und geeignete add-Methoden usw. hinzufügen, die das Erstellen einer neuen Liste für das erste Element eines bestimmten Schlüssels behandeln.

    
Albin Sunnanbo 01.11.2012 20:14
quelle

Tags und Links