C#でリストをコピーまたは複製する方法をわかりやすく解説
C#でList<T>の内容をコピーまたは複製する方法はいくつかあります。本記事では、代表的な手法であるCopyTo()メソッドを使って、リストを一次元配列へコピーする手順を、サンプルコードとともに詳しく解説します。
CopyTo()メソッドとは
CopyTo()は、Listの要素を指定した配列にコピーするためのメソッドです。まず、コピー元となるリストを作成しましょう。
List<string> list1 = new List<string>();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");
次に、コピー先となる文字列型の配列を宣言し、CopyTo()メソッドを呼び出してコピーを行います。
string[] arr = new string[20]; list1.CopyTo(arr);
このとき注意すべき点は、コピー先の配列には十分な要素数を確保しておく必要があるということです。配列のサイズがリストの要素数より小さい場合、ArgumentExceptionがスローされます。
完全なサンプルコード
以下に、リストを一次元配列へコピーする完全なコード例を示します。
例
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo {
public static void Main() {
List<string> list1 = new List<string>();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");
Console.WriteLine("最初のリスト...");
foreach(string value in list1) {
Console.WriteLine(value);
}
string[] arr = new string[20];
list1.CopyTo(arr);
Console.WriteLine("コピー後...");
foreach(string value in arr) {
Console.WriteLine(value);
}
}
}
出力結果
最初のリスト... One Two Three Four コピー後... One Two Three Four (残りの要素は空文字列)
その他のリスト複製方法
配列ではなく、別のリストとして複製したい場合は、以下のような方法が便利です。
1. コンストラクタを使う方法
List<string> list2 = new List<string>(list1);
2. ToList()メソッドを使う方法
List<string> list3 = list1.ToList();
3. GetRange()メソッドを使う方法
List<string> list4 = list1.GetRange(0, list1.Count);
いずれの方法でも新しいリストオブジェクトが生成され、要素が複製されます。ただし、これらはすべて浅いコピー(Shallow Copy)である点に注意してください。参照型の要素を含むリストの場合、要素自体は同じインスタンスを指します。
まとめ
C#でリストをコピーする際は、用途に応じて使い分けましょう。配列へのコピーにはCopyTo()、リスト同士の複製にはコンストラクタやToList()がシンプルでおすすめです。
-
【Windows】フォルダ内のファイル一覧をコピー・作成する2つの方法
フォルダ内のファイル一覧が必要になる場面は、それほど頻繁ではありませんが、たまに訪れます。ファイル名の一覧表を作りたい、すべてのファイル名をまとめてコピーしたい、Excelにファイル名リストを書き出したいなど、理由はさまざまです。しかし残念ながら、Windowsにはフォルダ内の全ファイル名を一覧化する標準機能が用意されていません。 とはいえ、Windowsでファイル一覧を作るのは決して難しいことではありません。この記事では、コマンドプロンプトを使う方法と、右クリックメニューからワンクリックでコピーできるようにする方法の2つを紹介します。 方法1:コマンドプロンプトでファイル一覧を作成する 最
-
Excelでフィルターのドロップダウンリストをコピーする5つの方法
Excelでフィルターのドロップダウンリストを効率的にコピーしたいとお考えなら、この記事が参考になります。ここでは、さまざまな状況に応じてフィルターのドロップダウンリストをコピーする5つの方法を詳しく解説します。それでは、本題に入りましょう。 5つの方法でExcelのフィルタードロップダウンリストをコピーする ここでは、販売担当者の名前と製品ごとの売上額が記録されたデータセットを使用します。このデータセットに対してフィルターを有効にしており、これから紹介する方法で、フィルターのドロップダウンリストをコピーする手順を説明していきます。 なお、本記事では Microsoft 365 版 Exce