词典1:
Dictionary<string, IList<PuntoMappa>> PuntiCantieriCMS = new Dictionary<string, IList<PuntoMappa>>();
词典2:
Dictionary<string, IList<PuntoMappa>> PuntiCantieri = new Dictionary<string, IList<PuntoMappa>>();
我希望联盟这两者;密钥相同的地方,他们必须为每个密钥联合IList<PuntoMappa>
。有可能吗?
尝试:
PuntiCantieri = PuntiCantieri .Union(PuntiCantieriCMS ).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
但是当2个键相似时,它会触发异常。
答案 0 :(得分:4)
这应该有效:
Dictionary<string, List<PuntoMappa>> unioned = PuntiCantieriCMS
.Concat(PuntiCantieri)
.GroupBy(kv => kv.Key)
.ToDictionary(kv => kv.Key, kv => kv.SelectMany(g => g.Value).ToList());
请注意,我已将值从IList<T>
更改为List<T>
。
答案 1 :(得分:1)
foreach(var kvp in PuntiCantieri)
{
if(PuntiCantieriCMS.ContainsKey(kvp.Key))
{
kvp.Value.AddRange(PuntiCantieriCMS[kvp.Key]);
}
}