【C#入門】リスト(List)コレクションを配列にコピーする方法
C#のリストを配列へコピーする基本の手順
C#で List コレクションの内容を配列にコピーするには、CopyTo()メソッドを使用します。まずは、コピー元となるリストを作成しましょう。
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);
CopyTo()メソッドは、リストの先頭要素から順に、配列のインデックス0番目からコピーを行います。そのため、コピー先の配列はリストの要素数以上のサイズを持っている必要があります。上記の例では、余裕をもって20個分のサイズを確保しています。
完全なサンプルコード
それでは、リストの内容を1次元配列にコピーする一連の流れを、完全なサンプルコードで確認してみましょう。
例
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("First list...");
foreach(string value in list1) {
Console.WriteLine(value);
}
string[] arr = new string[20];
list1.CopyTo(arr);
Console.WriteLine("After copy...");
foreach(string value in arr) {
Console.WriteLine(value);
}
}
}
実行結果のポイント
このプログラムを実行すると、最初にリスト内の「One」「Two」「Three」「Four」が出力され、コピー後には同じ値が配列側に出力されます。なお、配列のサイズが20とリストの要素数より大きいため、5番目以降の要素には空の文字列(null参照ではない空欄)が出力される点に注意してください。
また、コピー開始位置を指定したい場合は、CopyTo(array, index)のように引数を追加することで、任意のインデックスからコピーすることも可能です。状況に応じて使い分けると便利です。
-
【Windows】フォルダ内のファイル一覧をコピー・作成する2つの方法
フォルダ内のファイル一覧が必要になる場面は、それほど頻繁ではありませんが、たまに訪れます。ファイル名の一覧表を作りたい、すべてのファイル名をまとめてコピーしたい、Excelにファイル名リストを書き出したいなど、理由はさまざまです。しかし残念ながら、Windowsにはフォルダ内の全ファイル名を一覧化する標準機能が用意されていません。 とはいえ、Windowsでファイル一覧を作るのは決して難しいことではありません。この記事では、コマンドプロンプトを使う方法と、右クリックメニューからワンクリックでコピーできるようにする方法の2つを紹介します。 方法1:コマンドプロンプトでファイル一覧を作成する 最
-
Pythonでリストをコピーする方法まとめ:スライス、list()、copyモジュールの使い分け
Pythonでは、代入演算子(=)を使っても新しいオブジェクトは作成されません。既存のオブジェクトに別の名前(参照)を付けるだけです。この挙動は、組み込み関数 id() を使うことで確認できます。 >>> L1 = [1,2,3,4] >>> L2 = L1 >>> id(L1) 185117137928 >>> id(L2) 185117137928 L1 と L2 のIDが同じであることから、両者が同一のオブジェクトを参照していることがわかります。つまり、どちらか一方を変更するともう一方にも影響が及びます。リストを