Listのコンストラクタに別のListを指定すると、それと全く同じ内容のListが作成されます。 これにより、Listの複製を作成することができます。
Listのコンストラクタを使って既存のListの複製を作成する
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
var list1 = new List<string>() {"Alice", "Bob", "Charlie"};
Print(list1);
// list1と同じの内容Listを作成する
var list2 = new List<string>(list1);
Print(list2);
}
static void Print(List<string> list)
{
foreach (var e in list) {
Console.Write("{0}, ", e);
}
Console.WriteLine();
}
}
実行結果
Alice, Bob, Charlie, Alice, Bob, Charlie,
このコンストラクタによる複製では簡易コピーが行われるため、参照型を要素に持つListの場合は参照のみがコピーされます。 簡易コピーについてより詳しくはオブジェクトの複製で解説しています。