Maison > développement back-end > C++ > Comment puis-je fusionner efficacement plusieurs dictionnaires en C# ?

Comment puis-je fusionner efficacement plusieurs dictionnaires en C# ?

Susan Sarandon
Libérer: 2025-01-25 22:36:16
original
950 Les gens l'ont consulté

How Can I Efficiently Merge Multiple Dictionaries in C#?

Fusionner efficacement plusieurs dictionnaires en C#

Lorsque vous travaillez avec plusieurs dictionnaires en C#, les fusionner en un seul dictionnaire peut être une tâche courante. Voici une méthode robuste et efficace pour y parvenir :

public static Dictionary<TKey, TValue> Merge<TKey, TValue>(IEnumerable<Dictionary<TKey, TValue>> dictionaries)
{
    return dictionaries.SelectMany(dict => dict).ToDictionary(pair => pair.Key, pair => pair.Value);
}
Copier après la connexion

Cette méthode d'extension prend une collection énumérable de dictionnaires comme argument et les aplatit en un seul dictionnaire en sélectionnant toutes les paires clé-valeur de chaque dictionnaire à l'aide de SelectMany. . Il convertit ensuite le résultat en un nouveau dictionnaire à l'aide de ToDictionary avec les clés et les valeurs des paires aplaties.

Si les dictionnaires d'origine contiennent des clés en double, le comportement de cette méthode dépend de la version de .NET utilisée. Dans les versions .NET antérieures à 8, une exception sera levée. Dans .NET 8 et versions ultérieures, la surcharge ToDictionary nouvellement définie ignorera les clés en double.

Pour des scénarios plus avancés, vous pouvez également utiliser ToLookup pour créer un dictionnaire de recherche autorisant plusieurs valeurs par clé. Cependant, la conversion en un dictionnaire avec des clés uniques nécessite des étapes supplémentaires, comme démontré dans le code de référence fourni.

Que vous choisissiez d'écraser les clés en double ou de les gérer différemment, l'idée clé est d'exploiter la puissance de LINQ. Opérateur SelectMany pour aplatir les dictionnaires et en créer un nouveau efficacement.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal