動的配列を利用する - 実行時に配列のサイズを変更する - C#

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
iPentec all rights reserverd.