Combiner les deux Dictionnaires avec LINQ

Ma question a été identifiée comme un double de cette question: Comment combiner deux dictionnaires sans boucle?

Je crois que ma question est différent parce que je me demande comment combiner deux dictionnaires en particulier: je veux tous les éléments de Dictionary1 plus tous les éléments de Dictionary2 qui ne sont pas (c'est à dire la clé n'existe pas) dans Dictionary1.

J'ai deux dictionnaires comme ceci:

var d1 = new Dictionary<string,object>();
var d2 = new Dictionary<string,object>();

d1["a"] = 1;
d1["b"] = 2;
d1["c"] = 3;

d2["a"] = 11;
d2["e"] = 12;
d2["c"] = 13;

Je tiens à les combiner dans un nouveau Dictionnaire (techniquement, il n'a pas à être un dictionnaire, il pourrait juste être une séquence de KeyValuePairs) de telle sorte que la sortie contient tous les KeyValuePairs de d1 et seul le KeyValuePairs de d2 dont la Clé n'apparaît pas dans d1.

Sur le plan conceptuel:

var d3 = d1.Concat(d2.Except(d1))

Mais qui me donne tous les éléments de d1 et d2.

Semble comme il devrait être évident, mais quelque chose doit m'échapper.

  • Double Possible de Comment ajouter 2 contenu du Dictionnaire sans boucle en c#
  • Cette question n'est pas un doublon de cette question. Cette question est de se demander comment combiner les deux dictionnaires, d1 et d2, tels que le dictionnaire de tous les éléments de la d1, en plus de tous les éléments de d2 qui ne sont pas déjà en d1. L'autre question est de poser des questions, et les réponses expliquer comment, à combiner les deux dictionnaires, sans conditions supplémentaires.
InformationsquelleAutor wageoghe | 2011-02-04