C#でコレクションを配列にコピーする方法【CopyTo()メソッドの使い方】
C#でListなどのコレクションを配列にコピーするには、CopyTo()メソッドを使用します。まずは、コピー元となるコレクション(リスト)を作成しましょう。
List<string> list1 = new List<string>();
list1.Add("Car");
list1.Add("Bus");
list1.Add("Motorbike");
list1.Add("Train");
配列を宣言してCopyTo()メソッドでコピーする
続いて、コピー先となる文字列型の配列を宣言し、CopyTo()メソッドを呼び出してコピーを行います。ここでは要素数20の配列を用意しています。
string[] arr = new string[20]; list1.CopyTo(arr);
これで、リスト内のすべての要素が配列「arr」の先頭から順番にコピーされます。
完全なサンプルコード
以下は、コレクションを配列にコピーする一連の流れをまとめたサンプルコードです。
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo {
public static void Main() {
List<string> list1 = new List<string>();
list1.Add("Car");
list1.Add("Bus");
list1.Add("Motorbike");
list1.Add("Train");
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);
}
}
}
実行結果
First list... Car Bus Motorbike Train After copy... Car Bus Motorbike Train
利用時の注意点
- コピー先の配列には、コレクションの要素数以上の容量が必要です。容量が不足している場合は ArgumentException がスローされます。
- CopyTo(配列名, 開始インデックス) の形式のオーバーロードを使用すれば、配列内の任意の位置からコピーを開始することもできます。
- コピー後は元のコレクションと配列がそれぞれ独立したデータとなるため、片方を変更してももう片方には影響しません。
-
JavaのJSON-lib APIを使ってコレクションをJSON配列に変換する方法
net.sf.json.JSONArrayは、値の順序付きシーケンス(ordered sequence)を表すクラスです。外部形式としては、角括弧 [ ] で囲まれ、各値がカンマで区切られた文字列として表現されます。一方、内部形式では get() メソッドや opt() メソッドを使ってインデックスを指定して値にアクセスでき、element() メソッドによって値の追加や置換を行うことができます。 JSONArrayに格納できる値の型は、Boolean、JSONArray、JSONObject、Number、String、および JSONNull オブジェクトなど多岐にわたります。 JSON-
-
JavaのオブジェクトモデルでJSON配列を作成する方法
javax.json.JsonArrayインターフェースはイミュータブル(変更不可)なJSON配列を表現し、配列内の値に対する変更不可能なリストビューを提供します。JsonArrayオブジェクトは、入力ソースからJSONデータを読み込むことでも作成できますが、javax.json.Jsonクラスが提供する静的メソッドcreateArrayBuilder()を使って生成することも可能です。プログラムを実行するには、javax.jsonパッケージ(javax.json-api.jarファイルをダウンロードしてクラスパスに追加)をインポートする必要があります。 構文 public static Js