Heim >Backend-Entwicklung >C++ >Wie kann ich mit doppelten Schlüsseln in .NET-Wörterbüchern umgehen?
Mehrschlüsselwörterbücher in .NET
In der .NET-Basisklassenbibliothek erlauben Wörterbücher normalerweise keine doppelten Schlüssel. Dies kann in bestimmten Szenarien, in denen mehrere Werte demselben Schlüssel zugeordnet werden müssen, zu Einschränkungen führen.
Umgang mit Duplikaten mit spezialisierten Klassen
Ein Ansatz zum Umgang mit doppelten Schlüsseln besteht darin Erstellen Sie benutzerdefinierte Wrapper-Klassen. Beispielsweise kann ein Wörterbuch mit einem Zeichenfolgenschlüssel und einer Liste von Objekten als Werten wie folgt definiert werden:
Dictionary<string, List<object>>
Diese Methode bietet zwar eine Möglichkeit, mehrere Werte unter einem einzigen Schlüssel zu speichern, kann jedoch umständlich werden Arbeiten mit, insbesondere wenn mehrere Schlüssel beteiligt sind.
Verwenden der Lookup-Klasse
In .NET 3.5 befasst sich die Lookup-Klasse mit der Notwendigkeit doppelter Schlüssel in Wörterbüchern. Diese Klasse stellt ein Wörterbuch dar, das es ermöglicht, mehrere Schlüssel einem einzelnen Wert zuzuordnen, statt einem einzelnen Schlüssel wie in herkömmlichen Wörterbüchern.
Um ein Lookup-Objekt zu erstellen, können Sie die Erweiterungsmethode Enumerable.ToLookup verwenden, die transformiert eine vorhandene Sequenz in ein Nachschlagewörterbuch. Betrachten Sie beispielsweise den folgenden Code:
var dictionary = Enumerable.ToLookup(list, item => item.Key);
In diesem Szenario verfügt das Wörterbuch über doppelte Schlüssel, wobei jeder Schlüssel einer Folge von Werten aus der ursprünglichen Liste zugeordnet ist.
Einschränkungen und Alternativen
Während die Lookup-Klasse eine bequeme Möglichkeit bietet, mit doppelten Schlüsseln umzugehen, ist es wichtig zu beachten, dass sie davon ausgeht, dass das Wörterbuch dies nicht tut später geändert. Abhängig von Ihrem Anwendungsfall ist dies möglicherweise keine wünschenswerte Einschränkung. Wenn eine Änderung des Wörterbuchs erforderlich ist, müssen möglicherweise alternative Methoden untersucht werden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit doppelten Schlüsseln in .NET-Wörterbüchern umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!