Heim >Backend-Entwicklung >C++ >Wie kann ich Wörterbuchschlüssel basierend auf Werten in C# effizient abrufen?
Wörterbuchschlüssel basierend auf Werten in C# abrufen
In C# sind Wörterbücher Schlüssel-Wert-Paare, bei denen jeder eindeutige Schlüssel einem einzelnen Wert entspricht . Das Abrufen des Schlüssels aus einem Wert wird jedoch nicht direkt unterstützt. Dieser Artikel bietet effiziente Lösungen zur Bewältigung dieser Herausforderung.
Verwenden einer Suche
Da Werte in einem Wörterbuch möglicherweise nicht eindeutig sind, müssen Sie eine Suche durchführen, um sie zu finden entsprechenden Schlüssel. Dies kann mit der FirstOrDefault-Methode der Queryable-Klasse wie folgt erreicht werden:
var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
Diese Zeile durchläuft das Wörterbuch mithilfe eines Lambda-Ausdrucks und gibt den ersten Schlüssel zurück, bei dem der zugehörige Wert mit „eins“ übereinstimmt.
Verwendung eines inversen Wörterbuchs
Wenn Werte im Wörterbuch garantiert eindeutig sind und seltener eingefügt als gelesen werden, Sie können ein weiteres Wörterbuch erstellen, in dem Werte zu Schlüsseln werden und umgekehrt. Dieses inverse Wörterbuch kann den Schlüsselabruf beschleunigen:
Dictionary<string, string> inverseTypes = new Dictionary<string, string>(); foreach (var item in types) { inverseTypes[item.Value] = item.Key; } string myKey = inverseTypes["one"];
Dieser Ansatz ermöglicht die direkte Suche von Schlüsseln nach Werten, erfordert jedoch die Beibehaltung sowohl des ursprünglichen als auch des inversen Wörterbuchs.
HashTable oder SortedLists
Hash-Tabellen und sortierte Listen eignen sich nicht so gut zum Abrufen von Schlüsseln nach Wert wie Wörterbücher. Sie bieten im Allgemeinen keine effiziente Möglichkeit, anhand eines bestimmten Werts nach einem Schlüssel zu suchen. Wörterbücher wurden speziell für die effiziente Verarbeitung von Schlüssel-Wert-Paaren entwickelt.
Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbuchschlüssel basierend auf Werten in C# effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!