C#での動的配列について紹介します。
概要
C#では配列は定義時に長さを決定せず、実行時にnewにより配列の長さを決定するため、配列はすべて動的な配列として扱われています。
この記事では、実行時に配列の長さを動的に変更する方法を紹介します。
方法1:Array.Resize を利用する方法
Array.Resize メソッドを呼び出し配列の長さを変更する方法です。
コード例
private void button7_Click(object sender, EventArgs e)
{
string[] data = new string[2];
data[0] = "Penguin";
data[1] = "Duck";
//data[2] = "Sparrow";//実行時エラー(System.IndexOutOfRangeException)発生
for (int i = 0; i < data.Length; i++) {
textBox1.Text += data[i] + "\r\n";
}
textBox1.Text += "--------\r\n";
Array.Resize(ref data, 4);
data[2] = "Sparrow";
data[3] = "Hawk";
for (int i = 0; i < data.Length; i++) {
textBox1.Text += data[i] + "\r\n";
}
}
解説
以下のコードでstring型の配列を定義し配列長を2として配列を作成します。
string[] data = new string[2];
大かっこと添え字を記述する書式で、配列に値を代入します。
data[0] = "Penguin";
data[1] = "Duck";
配列の内容をtextBox1に表示します。
for (int i = 0; i < data.Length; i++) {
textBox1.Text += data[i] + "\r\n";
}
textBox1.Text += "--------\r\n";
下記のコードで配列の長さを4にリサイズします。(最初に定義した配列長が2でしたので長さを2つ伸ばすことになります。)
Array.Resize(ref data, 4);
伸ばした配列の要素に値を代入します。
data[2] = "Sparrow";
data[3] = "Hawk";
配列の内容をtextBox1に表示します。
for (int i = 0; i < data.Length; i++) {
textBox1.Text += data[i] + "\r\n";
}
方法2:リストを利用する
リストを利用した動的配列は
こちらの記事を参照してください。
方法3:ArrayListオブジェクトを利用する
ArrayListを利用した動的配列は
こちらの記事を参照して下ささい。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-08-24
作成日: 2010-12-31