配列の配列・ネストされた配列の宣言・初期化・代入・参照 - C#
C#での配列の配列・ネストされた配列の宣言、初期化、代入、参照のコードについて紹介します。
概要
C#では
2次元配列や多次元配列を定義することもできますが、"配列の配列"のように、ネストされた配列も定義できます。
配列の配列を「ジャグ配列」 (Jagged Array) と呼ぶこともあります。
書式
以下の書式となります。
宣言
配列の配列(1段のネスト)の場合
n段のネストの場合
初期化
1段目の初期化
(変数名) = new (型名)[(配列要素数)][];
2段目の初期化
(変数名)[(1段目の添え字)] = new (型名)[(配列要素数)];
n段目の初期化
(変数名)[n][m][l]...[k] = new (型名)[(配列要素数)];
代入
(変数名)[(1段目の添え字)][(2段目の添え字)] = (値);
(変数名)[(1段目の添え字)][(2段目の添え字)] ... [(n段目の添え字)] = (値);
記述例
宣言
int[][] data;
int[][][] values;
初期化
data = new int[4][];
for (int i=0; i<4;i++){
data[i] = new int[3];
}
values = new int[3][][];
for (int i=0; i<3;i++){
values [i] = new int[2][];
for (int j=0; j<2;j++){
values [i][j] = new int[4];
}
}
代入
data[2][3] = 120;
values[1][2][3] = 4;
コード例
以下のコードでは、3×4の配列の配列を宣言し初期化します。
private void Form1_Load(object sender, EventArgs e)
{
int[][] matrix = new int[3][];
for (int i=0; i<4;i++) matrix[i] = new int[4];
matrix[2][2] = 1;
}
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用