Mehrere Schlüssel für einen bestimmten Wert aus einem generischen Wörterbuch abrufen
Das Abrufen eines Werts basierend auf einem bestimmten Schlüssel aus einem generischen .NET-Wörterbuch ist mithilfe der Indexer-Syntax sehr einfach. Da es jedoch möglicherweise mehrere Schlüssel mit demselben Wert gibt, kann es schwieriger sein, den Schlüssel abzurufen, der einem bestimmten Wert entspricht.
Einführung in die BiDictionary-Datenstruktur
Um dieses Problem zu lösen, wurde die BiDictionary-Datenstruktur entwickelt, die eine bidirektionale Zuordnung zwischen Schlüsseln und Werten ermöglicht. Es verwaltet zwei interne Wörterbücher:
Implementierungsdetails
Die BiDictionary-Klasse bietet Methoden zum Hinzufügen von Schlüssel-Wert-Paaren und zum Abrufen von Werten basierend auf beiden Schlüsseltypen. Zum Beispiel:
<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); greek.Add(5, "Beta"); IList<int> betaKeys = greek["Beta"]; // 返回 [2, 5]</code>
Diese Implementierung verwendet eine leere Liste als Standardrückgabewert für nicht vorhandene Schlüssel und stellt so sicher, dass Sie immer eine Liste erhalten, auch wenn diese leer ist.
Anpassbarer Indexer
Der Einfachheit halber enthält BiDictionary anpassbare Indexer, die basierend auf dem aufrufenden Schlüsseltyp direkten Zugriff auf das interne Wörterbuch ermöglichen. Dies vereinfacht den Zugriff auf Werte, indem Sie die Indexer-Syntax verwenden können:
<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); string secondGreek = greek[2]; // 返回 "Beta"</code>
Beispielverwendung
Der bereitgestellte Code demonstriert die Funktionalität von BiDictionary:
<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); greek.Add(5, "Beta"); ShowEntries(greek, "Alpha"); // 打印 "Alpha: [1]" ShowEntries(greek, "Beta"); // 打印 "Beta: [2, 5]" ShowEntries(greek, "Gamma"); // 打印 "Gamma: []"</code>
Dieses Beispiel zeigt, wie der Schlüssel abgerufen wird, der einem bestimmten Wert entspricht, und es behandelt den Fall nicht vorhandener Werte elegant, indem eine leere Liste zurückgegeben wird.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Schlüssel abrufen, die einem einzelnen Wert in einem generischen Wörterbuch zugeordnet sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!