Heim >Backend-Entwicklung >C++ >Wie kann ich effizient mehrere Schlüssel abrufen, die einem einzelnen Wert in einem .NET-Wörterbuch zugeordnet sind?

Wie kann ich effizient mehrere Schlüssel abrufen, die einem einzelnen Wert in einem .NET-Wörterbuch zugeordnet sind?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 03:31:13827Durchsuche

How Can I Efficiently Retrieve Multiple Keys Associated with a Single Value in a .NET Dictionary?

.NET Generic Dictionary: Umgang mit mehreren Schlüsseln für einen einzelnen Wert

Standard .NET Dictionary-Objekte bieten einen einfachen Schlüssel-zu-Wert-Zugriff. Allerdings wird das Abrufen von Schlüsseln, die einem bestimmten Wert zugeordnet sind, komplex, wenn mehrere Schlüssel demselben Wert zugeordnet sind. In diesem Artikel wird eine Lösung mit einem benutzerdefinierten bidirektionalen Wörterbuch vorgestellt.

Erstellen eines bidirektionalen Wörterbuchs

Um diese Einschränkung zu überwinden, erstellen wir eine BiDictionary<TFirst, TSecond>-Klasse. Diese Klasse verwaltet Schlüssel-Wert-Beziehungen in beide Richtungen und verwendet dazu zwei interne Wörterbücher: firstToSecond (Schlüssel zu Wert) und secondToFirst (Wert zu Schlüssel).

Einträge hinzufügen und auf Daten zugreifen

Die Add-Methode verwaltet das Hinzufügen neuer Schlüssel-Wert-Paare effizient. Es sucht nach vorhandenen Einträgen und erstellt bei Bedarf neue Listen, um mehrere Schlüssel für einen einzelnen Wert zu speichern.

Die BiDictionary-Klasse stellt Indexer sowohl für den Schlüssel-zu-Wert- als auch für den Wert-zu-Schlüssel-Zugriff bereit. Um Mehrdeutigkeiten zu vermeiden, sind auch spezielle Methoden GetByFirst und GetBySecond enthalten.

Anschauliches Beispiel

Betrachten wir ein praktisches Beispiel:

<code class="language-C#">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

ShowEntries(greek, "Alpha"); // Output: Alpha: [1]
ShowEntries(greek, "Beta"); // Output: Beta: [2, 5]
ShowEntries(greek, "Gamma"); // Output: Gamma: []</code>

Die ShowEntries-Methode demonstriert das Abrufen von Schlüsseln für einen bestimmten Wert. Beachten Sie, dass „Beta“ beide zugehörigen Schlüssel (2 und 5) korrekt zurückgibt. Dies zeigt die Fähigkeit des bidirektionalen Wörterbuchs, mehrere Schlüssel pro Wert zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient mehrere Schlüssel abrufen, die einem einzelnen Wert in einem .NET-Wörterbuch zugeordnet sind?. 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