配列の宣言・初期化・代入・参照 - C#

C#で配列を宣言し初期化して配列を使用するコードを紹介します。

概要

配列とは変数をまとめて管理するための仕組みです。添え字により任意の順番(場所)の変数にアクセス可能です。

配列を用いることのメリット

配列を用いると添え字によりアクセスが可能なため、ループ処理などでまとめて処理をすることができます。

配列の宣言

書式

配列の宣言は以下の書式を利用します。
型名[] 配列変数名;

記述例

IDListという名称のint型の配列を宣言します。
  int[] IDList;

NameList という string型の配列を宣言します。
  string[] NameList;

配列の初期化

C#では配列の宣言後に配列の初期化が必要です。

書式

配列の初期化は下記の書式を利用します。
配列変数名 = new 型名[配列数]

記述例

IDList配列を配列長100で初期化します。
  IDList = new int[100];

NameList配列を配列長25で初期化します。
  NameList = new string[25];

配列宣言と初期化を同じ行で記述できます。
下記のコードでは整数型の配列を定義し、長さ5の配列長で初期化します。
  int[] array = new int[5];

初期化時の値の代入

配列初期化時に値を代入することもできます。書式については「配列の初期化時に値を代入する」を参照してください。

実行時の配列の長さの変更

C#では配列は定義時に長さを決定せず、実行時にnewにより配列の長さを決定するため、実行時に配列の長さを変更できます。コードの記述の詳細は「動的配列を利用する - 実行時に配列のサイズを変更する」の記事を参照してください。

配列の要素への代入

配列の要素に代入をする場合は、代入する要素を大かっこ"[", "]"で囲み添え字で指定します。
代入は = 演算子を利用し左辺に代入される配列の要素を記述し、右辺に代入する値を記述します。

書式

配列変数名[配列番号] = 代入する値

記述例

下記のコードは配列arrayの0番目の要素に10を代入します。
 array[0] = 10;

配列の要素の参照

配列の要素の参照は要素を大かっこ"[", "]"で囲み添え字で指定します。

書式

配列変数名[配列番号] 

記述例

下記のコードは配列dataの4番目の要素を変数valueに代入します。
 value = data[4];

プログラム例1

UI

下図のUIを作成します。Buttonと複数行のTextBoxを配置します。

コード

下記のコードを記述します。
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ArrayDemo
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      int[] array = new int[5];
      array[0] = 10;
      array[1] = 5;
      array[2] = 8;
      array[3] = 2;
      array[4] = 4;

      for (int i=0; i < array.Length; i++) {
        textBox1.Text += "value["+i.ToString()+"] " + Convert.ToString(array[i])+"\r\n";
      }
    }
  }
}

解説

  int[] array = new int[5];
上記コードで配列を宣言します。配列のサイズは5になります。(0~4の添え字まで利用可能)

  array[0] = 10;
  array[1] = 5;
  array[2] = 8;
  array[3] = 2;
  array[4] = 4;
配列に値を代入します。

  for (int i=0; i < array.Length; i++) {
    textBox1.Text += "value["+i.ToString()+"] " + Convert.ToString(array[i])+"\r\n";
  }
配列の値をTextBoxに出力します。"value[n] (値)" の形式で配列に代入された値を表示しています。

補足

配列初期化時に値を代入する書式で記述した下記のコードでも全く同じ動作となります。
private void button1_Click(object sender, EventArgs e)
{
  int[] array = new int[5] {10,5,8,2,4};

  for (int i=0; i < array.Length; i++) {
    textBox1.Text += "value["+i.ToString()+"] " + Convert.ToString(array[i])+"\r\n";
  }
}

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[button1]をクリックします。テキストボックスに結果が表示されます。配列の値がテキストボックスに出力できています。

プログラム例2 (foreach の利用)

すべての配列の要素に対して処理をする場合は、foreach文が利用できます。foreach文の動作の詳細についてはこちらの記事を参照してください。

UI

下図のUIを作成します。Buttonと複数行のTextBoxを配置します。

コード

下記のコードを記述します。
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ArrayDemo
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button8_Click(object sender, EventArgs e)
    {
      string[] array = new string[5] { "Penguin", "Bear", "Whale", "Camel", "Ostrich" };

      foreach (string value in array) {
        textBox1.Text += "value: " + value + "\r\n";
      }
    }
  }
}

解説

  string[] array = new string[5] { "Penguin", "Bear", "Whale", "Camel", "Ostrich" };
上記コードにより、配列を宣言し値を代入します。

  foreach (string value in array) {
    textBox1.Text += "value: " + value + "\r\n";
  }
foreach文により、配列の要素をループします。配列の要素すべてに対し、ループ内の処理が1度実行されます。

実行結果

プログラムを実行します。下図のウィンドウが表示されます。


ボタンをクリックします。テキストボックスに結果が表示されます。配列の値が表示できていることがわかります。



このページのキーワード
  • C# 配列
  • C# 配列 宣言
  • C# 配列 初期化
  • C# 配列 代入
  • C# 配列 参照
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2010-12-28
iPentec all rights reserverd.