配列の宣言・初期化・代入・参照 - C#
C#で配列を宣言し初期化して配列を使用するコードを紹介します。
概要
配列とは変数をまとめて管理するための仕組みです。添え字により任意の順番(場所)の変数にアクセス可能です。
配列を用いることのメリット
配列を用いると添え字によりアクセスが可能なため、ループ処理などでまとめて処理をすることができます。
配列の宣言
書式
配列の宣言は以下の書式を利用します。
記述例
IDListという名称のint型の配列を宣言します。
int[] IDList;
NameList という string型の配列を宣言します。
string[] NameList;
配列の初期化
C#では配列の宣言後に配列の初期化が必要です。
書式
配列の初期化は下記の書式を利用します。
記述例
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を愛用