Heim >Backend-Entwicklung >C++ >Wie kann ich mit doppelten Schlüsseln in .NET-Wörterbüchern umgehen?

Wie kann ich mit doppelten Schlüsseln in .NET-Wörterbüchern umgehen?

DDD
DDDOriginal
2025-01-01 11:15:16606Durchsuche

How Can I Handle Duplicate Keys in .NET Dictionaries?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn