1

辞書 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 つのキーが類似している場合は、例外が発生します。

4

2 に答える 2

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>

于 2013-06-10T13:54:44.597 に答える
1
 foreach(var kvp in PuntiCantieri)
 {
      if(PuntiCantieriCMS.ContainsKey(kvp.Key))
      {
         kvp.Value.AddRange(PuntiCantieriCMS[kvp.Key]);
      }

 } 
于 2013-06-10T13:54:53.860 に答える