Dictionnaires multi-clés dans .NET
Dans la bibliothèque de classes de base .NET, les dictionnaires n'autorisent généralement pas les clés en double. Cela peut poser des limites dans certains scénarios où plusieurs valeurs doivent être associées à la même clé.
Gestion des doublons avec des classes spécialisées
Une approche pour gérer les clés en double consiste à créer des classes wrapper personnalisées. Par exemple, un dictionnaire avec une clé de chaîne et une liste d'objets comme valeurs peut être défini comme :
Dictionary<string, List<object>>
Bien que cette méthode fournisse un moyen de stocker plusieurs valeurs sous une seule clé, elle peut devenir fastidieuse à travailler avec, en particulier lorsque plusieurs clés sont impliquées.
Utilisation de la classe de recherche
Dans .NET 3.5, la classe Lookup répond au besoin de clés en double dans les dictionnaires. Cette classe représente un dictionnaire qui permet d'associer plusieurs clés à une seule valeur plutôt qu'une seule clé comme dans les dictionnaires traditionnels.
Pour créer un objet Lookup, vous pouvez utiliser la méthode d'extension Enumerable.ToLookup, qui transforme une séquence existante dans un dictionnaire de recherche. Par exemple, considérons le code suivant :
var dictionary = Enumerable.ToLookup(list, item => item.Key);
Dans ce scénario, le dictionnaire aura des clés en double, chaque clé étant mappée à une séquence de valeurs de la liste d'origine.
Limitations et alternatives
Bien que la classe Lookup fournisse un moyen pratique de gérer les clés en double, il est important de noter qu'elle suppose que le dictionnaire ne le fera pas. être modifié ultérieurement. Selon votre cas d'utilisation, cela peut ne pas être une restriction souhaitable. Si la modification du dictionnaire est nécessaire, des méthodes alternatives devront peut-être être explorées.
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!