2 つの Dictionary をひとつにまとめる
両方の Dictionary に同じキーが含まれる場合は、Sum()
で足し合わせます。
using System; using System.Collections.Generic; using System.Linq; class Program { static Dictionary<int, int> Add(Dictionary<int, int> a, Dictionary<int, int> b) { return a.Concat(b).GroupBy(e => e.Key, e => e.Value).ToDictionary(e => e.Key, e => e.Sum()); } static void Main() { var a = new Dictionary<int, int> { { 1, 2 }, { 2, 3 }, }; var b = new Dictionary<int, int> { { 0, 1 }, { 1, 1 }, { 2, 2 }, { 5, 0 }, }; var c = Add(a, b); foreach (var k in c.Keys.OrderBy(e => e)) { Console.WriteLine("key:{0} val:{1}", k, c[k]); } } }
実行結果です。
key:0 val:1 key:1 val:3 key:2 val:5 key:5 val:0