second
is a Dictionary<string, IList<PuntoMappa>>
while の戻り値の型はUnion
isIEnumerable<KeyValuePair<string, IList<PuntoMappa>>>
です。それを辞書に戻す必要があります。
second = second.Union(first).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
コメントが指摘しているように、キーが重複している場合、これは機能しない可能性があります。代わりに、2 つの辞書で一致するキーを使用してリストを結合したい場合は、次を使用できますJoin
。
second = first.Join(second, kvp => kvp.Key, kvp => kvp.Key, (pair1, pair2) => new { Name = pair1.Key, PuntoMappas = pair1.Value.Union(pair2.Value) })
.ToDictionary(p => p.Name, p => p.PuntoMappas.ToList());