Dictionnaire générique .NET : gestion de plusieurs clés pour une valeur unique
Les objetsStandard .NET Dictionary
offrent un accès clé-valeur facile. Cependant, la récupération des clés associées à une valeur spécifique devient complexe lorsque plusieurs clés correspondent à la même valeur. Cet article présente une solution utilisant un dictionnaire bidirectionnel personnalisé.
Créer un dictionnaire bidirectionnel
Pour pallier cette limitation, nous créons une BiDictionary<TFirst, TSecond>
classe. Cette classe gère les relations clé-valeur dans les deux sens, à l'aide de deux dictionnaires internes : firstToSecond
(clé vers valeur) et secondToFirst
(valeur vers clés).
Ajout d'entrées et accès aux données
La méthode Add
gère efficacement l'ajout de nouvelles paires clé-valeur. Il vérifie les entrées existantes et crée de nouvelles listes si nécessaire pour stocker plusieurs clés pour une seule valeur.
La classe BiDictionary
fournit des indexeurs pour l'accès clé-à-valeur et valeur-à-clé. Pour éviter toute ambiguïté, des méthodes dédiées, GetByFirst
et GetBySecond
, sont également incluses.
Exemple illustratif
Considérons un exemple pratique :
<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>
La méthode ShowEntries
montre la récupération des clés pour une valeur donnée. Remarquez comment "Beta" renvoie correctement les deux clés associées (2 et 5). Cela montre la capacité du dictionnaire bidirectionnel à gérer plusieurs clés par valeur.
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!