List を結合するには AddRange メソッドを使用します。
List の結合方法
リストオブジェクト1.AddRange(リストオブジェクト2);
- リストオブジェクト1 の 末尾に リストオブジェクト2 の内容が追加されます。
- リストオブジェクト2 の 内容は変更されません。
- リストオブジェクト内の 順序 は維持されます。
using System.Collections.Generic;
var list1 = new List<int>() { 1, 2, 3 };
var list2 = new List<int>() { 4, 5, 6 };
// list1 の末尾に list2 を追加
list1.AddRange(list2);
// 結果表示
System.Console.WriteLine("結果");
foreach (var value in list1)
{
System.Console.WriteLine(value);
}
2 つの List を結合した、新しい List を作成する
リストの内容を変更したくない場合は リストをコピー後に AddRange を行います。リストAB = new List<データ型>(リストA);
リストAB.AddRange(リストB);
サンプルコード
using System.Collections.Generic;
var listA = new List<int>() { 1, 2, 3 };
var listB = new List<int>() { 4, 5, 6 };
// listA をコピー
var listAB = new List<int>(listA);
// listAB の末尾に listB を追加
listAB.AddRange(listB);
// 結果表示("リストA")
System.Console.WriteLine("リストA");
foreach (var value in listA)
{
System.Console.WriteLine(value);
}
// 結果表示("リストB")
System.Console.WriteLine("リストB");
foreach (var value in listB)
{
System.Console.WriteLine(value);
}
// 結果表示("リストA + B")
System.Console.WriteLine("リストA + B");
foreach (var value in listAB)
{
System.Console.WriteLine(value);
}
- 7行目: listA を コピーします。
- 10行目: コピーしたリストに対して、リストを追加します。

検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.9.5
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.985 Experience: Windows Feature Experience Pack 120.2212.2020.0