Maison > développement back-end > C++ > Comment implémenter un dictionnaire bidirectionnel 1-to-1 en C# ?

Comment implémenter un dictionnaire bidirectionnel 1-to-1 en C# ?

DDD
Libérer: 2025-01-08 11:07:40
original
775 Les gens l'ont consulté

How to Implement a Bidirectional 1-to-1 Dictionary in C#?

Création d'un dictionnaire bidirectionnel 1:1 en C#

Cet article aborde le défi de la création d'un dictionnaire bidirectionnel un-à-un en C#. L'exigence est un dictionnaire dans lequel chaque clé a une valeur unique, et vice-versa, permettant des recherches à partir de la clé et de la valeur.

Solution : une implémentation de BiDictionary personnalisée

Au lieu de s'appuyer sur des dictionnaires C# standards, une classe BiDictionaryOneToOne<TFirst, TSecond> personnalisée est la solution la plus efficace. Cette classe utilise deux dictionnaires internes : l'un mappant TFirst à TSecond et l'autre mappant TSecond à TFirst. Cette double cartographie garantit l'unicité et l'accès bidirectionnel.

La classe BiDictionaryOneToOne comprend plusieurs méthodes pour une gestion efficace des données :

  • Méthodes sûres (avec exceptions) : Add, GetByFirst, GetBySecond, RemoveByFirst et RemoveBySecond lèvent des exceptions si la clé ou la valeur spécifiée n'est pas trouvée. Cela permet une gestion claire des erreurs.
  • Méthodes d'essai (sans exceptions) : TryAdd, TryGetByFirst, TryGetBySecond, TryRemoveByFirst et TryRemoveBySecond renvoient true en cas de succès et false sinon, en évitant les exceptions pour une gestion des erreurs plus flexible.
  • Méthodes utilitaires : Count renvoie le nombre de paires clé-valeur et Clear supprime toutes les entrées.

Cette classe BiDictionaryOneToOne personnalisée fournit une solution robuste et efficace pour gérer les relations bidirectionnelles 1:1 en C#. Sa gestion claire des erreurs et ses fonctionnalités complètes le rendent idéal pour divers scénarios de gestion de données nécessitant des associations clé-valeur uniques avec des capacités de recherche efficaces de chaque côté.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal