C# de la Fusion de 2 dictionnaires

Je suis de développer une application en C# ciblage .NET 3.5. J'ai 2 similaires dictionnaires qui contiennent des critères de validation pour un ensemble spécifique d'éléments dans mon application. Les deux dictionnaires ont les mêmes signatures. Le premier dictionnaire a les paramètres par défaut et le 2ème dictionnaire contient certains paramètres définis par l'utilisateur.

var default_settings = new Dictionary<string, MyElementSettings>();
var custom_settings = new Dictionary<string, MyElementSettings>();

Je voudrais combiner les 2 dictionnaires en un qui contient les éléments des deux dictionnaires.

Le problème que je suis en cours d'exécution, c'est qu'il est possible pour les deux dictionnaires d'avoir certains des mêmes valeurs de clé. La règle de base que je veux, c'est une combinaison à la fois dictionnaire et si il y a toutes les clés en les custom_settings qui existent déjà dans le default_settings, le custom_settings de la valeur de remplacer le default_settings valeur. La meilleure solution que j'ai est juste une boucle foreach, vérifiez si la clé existe dans l'autre dictionnaire, et si non, ajouter.

foreach (var item in custom_settings)
{
    if (default_settings.ContainsKey(item.Key))
        default_settings[item.Key] = item.Value;
    else
        default_settings.Add(item.Key, item.Value);
}

J'ai fait de la base des requêtes LINQ, mais je travaille toujours sur l'apprentissage, les trucs les plus avancés. J'ai vu un peu les requêtes qui va fusionner 2 dictionnaires, mais la plupart comportent un groupement de n'importe quel élément avec des doubles de clés, ou seulement retourner une collection avec juste le double des clés/Est-il une requête LINQ ou l'expression de mimer le comportement de la boucle foreach, je suis en utilisant?

InformationsquelleAutor psubsee2003 | 2010-10-25