Récupération des clés de dictionnaire par valeur en C#
En C#, l'obtention d'une clé de dictionnaire par sa valeur associée nécessite une opération de recherche supplémentaire au-delà du dictionnaire standard fonctionnalité. Voici comment cela peut être réalisé :
Utilisation de la méthode FirstOrDefault() :
S'il n'est pas garanti que les valeurs du dictionnaire sont uniques, vous pouvez utiliser la méthode FirstOrDefault( ) méthode de la classe Enumerable pour trouver la première valeur correspondante :
// Dictionary with string keys and values Dictionary<string, string> types = new Dictionary<string, string>() { { "1", "one" }, { "2", "two" }, { "3", "three" } }; // Get the key associated with the value "one" string myKey = types.FirstOrDefault(x => x.Value == "one").Key;
Dans ce cas, myKey contiendra la valeur "1". Notez que cette approche peut ne pas renvoyer de clé si plusieurs valeurs dans le dictionnaire ont la même valeur.
Création d'un dictionnaire inverse :
Alternativement, si les valeurs sont uniques et sont insérés moins fréquemment que lus, vous pouvez créer un dictionnaire inverse, où les valeurs sont des clés et les clés sont des valeurs :
// Create an inverse dictionary Dictionary<string, string> inverseTypes = new Dictionary<string, string>(); // Populate the inverse dictionary foreach (var kvp in types) { inverseTypes[kvp.Value] = kvp.Key; } // Get the key associated with the value "one" string myKey = inverseTypes["one"];
Avec cette approche, la recherche L'opération peut être effectuée directement à l'aide du dictionnaire inverse sans avoir besoin d'une recherche séparée. Gardez à l'esprit que cette option implique une surcharge de mémoire supplémentaire en raison de la création du dictionnaire inverse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!