Mi pregunta se ha marcado como un posible duplicado de esta pregunta: How to combine two dictionaries without looping?Combinar dos diccionarios con LINQ
Creo que mi pregunta es diferente porque yo estoy preguntando cómo combinar dos diccionarios de una manera particular: Quiero que todos los artículos de Dictionary1 más todos los elementos de Dictionary2 que no están en (es decir, la clave no existe) en Dictionary1.
que tienen dos diccionarios de este tipo:
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;
me gustaría combinarlos en un nuevo diccionario (técnicamente, no tiene por qué ser un diccionario, podría ser sólo una secuencia de KeyValuePairs
) tales que la salida contiene todos los KeyValuePairs
de d1 y solo los KeyValuePairs de d2
cuya clave no aparece en d1
.
Conceptualmente:
var d3 = d1.Concat(d2.Except(d1))
Pero eso me está dando todos los elementos de D1 y D2.
Parece que debería ser obvio, pero me falta algo.
duplicado posible de [Cómo agregar 2 contenidos del diccionario sin bucle en C#] (http://stackoverflow.com/questions/712927/how-to-add-2-dicti onary-contents-without-looping-in-c-sharp) –
Esta pregunta no es un duplicado de esa pregunta. Esta pregunta es cómo combinar dos diccionarios, d1 y d2, de modo que el diccionario resultante tenga todos los elementos de d1 más todos los elementos de d2 que aún no estén en d1. La otra pregunta es preguntar y las respuestas explican cómo combinar dos diccionarios sin condiciones adicionales. – wageoghe