Che*_*riy 13 c# linq merge dictionary
如何合并2个字典,IDictionary<Guid, MyObject>哪个MyObject是类实例?
IDictionary<Guid, MyObject> d1 = new Dictionary<Guid, MyObject>();
d1.Add(guid1, m1);
d1.Add(guid2, m2);
d1.Add(guid3, m3);
IDictionary<Guid, MyObject> d2 = new Dictionary<Guid, MyObject>();
d2.Add(guid2, m2);
d2.Add(guid3, m3);
d2.Add(guid4, m4);
IDictionary<Guid, MyObject> d3 = d1.Union(d2) ???
Run Code Online (Sandbox Code Playgroud)
在d3有如下条目:
guid1,m1
guid2,m2
guid3,m3
guid4,m4
Run Code Online (Sandbox Code Playgroud)
Eri*_*c H 16
d1.Concat(d2.Where( x=> !d1.Keys.Contains(x.Key)));
Run Code Online (Sandbox Code Playgroud)
d1.Union(d2).GroupBy (kvp => kvp.Key).ToDictionary(kvp => kvp.Key, kvp => kvp.First().Value); 出去做的伎俩.
IDictionary<Guid, MyObject> d1 = new Dictionary<Guid, MyObject>();
d1.Add(guid1, m1);
d1.Add(guid2, m2);
d1.Add(guid3, m3);
IDictionary<Guid, MyObject> d2 = new Dictionary<Guid, MyObject>();
d2.Add(guid2, m2);
d2.Add(guid3, m3);
d2.Add(guid4, m4);
IDictionary<Guid, MyObject> d3 =
d1.Union(d2).GroupBy (kvp => kvp.Key)
.ToDictionary (kvp => kvp.Key, kvp => kvp.First ().Value);
Run Code Online (Sandbox Code Playgroud)