Maison >développement back-end >C++ >Comment puis-je récupérer efficacement plusieurs clés associées à une valeur unique dans un dictionnaire .NET ?

Comment puis-je récupérer efficacement plusieurs clés associées à une valeur unique dans un dictionnaire .NET ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 03:31:13774parcourir

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

Dictionnaire générique .NET : gestion de plusieurs clés pour une valeur unique

Les objets

Standard .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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn