コレクション

[C#] Listをコピーする

2021年6月30日

Listをコピーするサンプルです。
実体コピー参照コピーの2種類があります。

サンプル

例1)Listをコピーする(実体コピー)

// コピー元のList
List<string> list = new List<string>(){"東京", "名古屋", "大阪"};

// listをコピーする
List<string> listCopy = new List<string>(list);

実体コピーだと、同じ内容で全く別のリストオブジェクトが生成されます。
なので、listCopyの内容を修正しても、listの内容には影響を及ぼしません。

例2)Listをコピーする(参照コピー)

// コピー元のList
List<string> list = new List<string>(){"東京", "名古屋", "大阪"};

// listをコピーする
List<string> listCopy = list

参照コピーだと、listCopyとlistは同じリストを参照しています。
なので、listCopyを修正するとlistの内容も変わります。

備考

  • 実体コピーは、ディープコピー(Deep Copy)とも呼びます
  • 参照コピーは、シャローコピー(Shallow Copy)とも呼びます

関連記事

-コレクション
-