目次
foreach で結合する
using System;
using System.Collections.Generic;
public static class Program
{
private static void Main()
{
var table1 = new Dictionary<int, string>
{
{ 1, "フシギダネ" },
{ 2, "フシギソウ" },
{ 3, "フシギバナ" },
};
var table2 = new Dictionary<int, string>
{
{ 4, "ヒトカゲ" },
{ 5, "リザード" },
{ 6, "リザードン" },
};
var table3 = new Dictionary<int, string>();
foreach ( var n in table1 )
{
table3.Add( n.Key, n.Value );
}
foreach ( var n in table2 )
{
table3.Add( n.Key, n.Value );
}
foreach ( var n in table3 )
{
Console.WriteLine( n );
}
}
}
LINQ で結合する(キーが重複する場合は例外)
using System;
using System.Collections.Generic;
using System.Linq;
public static class Program
{
private static void Main()
{
var table1 = new Dictionary<int, string>
{
{ 1, "フシギダネ" },
{ 2, "フシギソウ" },
{ 3, "フシギバナ" },
};
var table2 = new Dictionary<int, string>
{
{ 4, "ヒトカゲ" },
{ 5, "リザード" },
{ 6, "リザードン" },
};
var table3 = table1
.Concat( table2 )
.ToDictionary( c => c.Key, c => c.Value );
foreach ( var n in table3 )
{
Console.WriteLine( n );
}
}
}
- ソースコードの先頭に
using System.Linq;
を記述する必要があります
- 重複したキーが存在する場合は結合時に例外が発生するので注意してください
LINQ で結合する(キーが重複しても大丈夫)
using System;
using System.Collections.Generic;
using System.Linq;
public static class Program
{
private static void Main()
{
var table1 = new Dictionary<int, string>
{
{ 1, "フシギダネ" },
{ 2, "フシギソウ" },
{ 3, "フシギバナ" },
};
var table2 = new Dictionary<int, string>
{
{ 4, "ヒトカゲ" },
{ 5, "リザード" },
{ 6, "リザードン" },
};
var table3 = table1
.Concat( table2 )
.GroupBy( c => c.Key )
.ToDictionary( c => c.Key, c => c.FirstOrDefault().Value );
foreach ( var n in table3 )
{
Console.WriteLine( n );
}
}
}
- ソースコードの先頭に
using System.Linq;
を記述する必要があります
- 重複したキーが存在する場合は最初に見つかった要素が残ります
参考サイト様