English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 多次元配列

C#は最大32次元を持つ多次元配列です。カンマを追加することで多次元配列を宣言できます。例えば、[、]は二次元配列、[、,]は三次元配列、[、,、]は四次元配列などです。したがって、カンマの数は次元の数に等しいです-1。

多次元配列を宣言します。

int[, ,] arr2d; // 二次元配列
int[, ,] arr3d; // 三次元配列
int[, , ,] arr4d ; // 四次元配列
int[, , , ,] arr5d; // 五次元配列

二次元配列

二次元配列について説明しましょう。以下に二次元配列を初期化します。

int[, ,] arr2d = new int[3,2]{ 
                                {1, 2}, 
                                {3, 4}, 
                                {5, 6} 
                            };
//または 
int[, ,] arr2d = { 
                    {1, 2}, 
                    {3, 4}, 
                    {5, 6} 
                };

上記の二次元配列の例では、[3、2の中で行と列の数を定義します。第一列は行数を示し、第二列は列数を定義します。以下の図は行と列に分けられた二次元配列を示しています。

二次元配列

二次元配列の以下のアクセス値です。

int[, ,] arr2d = new int[3,2]{ 
                                {1, 2}, 
                                {3, 4}, 
                                {5, 6} 
                            };
arr2d[0, 0]; //返します1
arr2d[0, 1]; //返します2
arr2d[1, 0]; //返します3
arr2d[1, 1]; //返します4
arr2d[2, 0]; //返します5
arr2d[2, 1]; //返します6
//arr2d[3, 0]; //実行時エラーが発生します、なぜなら第四行がないからです

上記の例では、二次元配列の値は行と列のインデックス番号[行インデックス、列インデックス]でアクセスできます。したがって、[0, 0]は第一行と第一列[1, 1の値を取得し、第二行と第二列の値を返します。

三次元配列

今、三次元配列について説明しましょう。以下に三次元配列を宣言し初期化します。

int[, ,] arr3d1 = new int[1, 2, 2]{
                { { 1, 2}, { 3, 4} }
            };
int[, ,] arr3d2 = new int[2, 2, 2]{
                { {1, 2}, {3, 4} },
                { {5, 6}, {7, 8} }
            };
int[, ,] arr3d3 = new int[2, 2, 3]{
                { { 1, 2, 3}, {4, 5, 6} },
                { { 7, 8, 9}, {10, 11, 12} }
            };
arr3d2[0, 0, 0]; // 返します1 
arr3d2[0, 0, 1]; // 返します2 
arr3d2[0, 1, 0]; // 返します3 
arr3d2[0, 1, 1]; // 返します4 
arr3d2[1, 0, 0]; // 返します5 
arr3d2[1, 0, 1]; // 返します6 
arr3d2[1, 1, 0]; // 返します7 
arr3d2[1, 1, 1]; // 返します8

上記の例で見たように、arr3d1の[1,2,2を含む二次元配列[2,2の中の一行を指定します。arr3d2指定された次元[2,2,2、二次元配列[2,2の二行です。したがって、第一列は内部の二次元配列の行数を示します。

四次元配列

次に、以下の4次元配列を見てみましょう。

int[,,,] arr4d1 = new int[1, 1, 2, 2]{
                { 
                    { { 1, 2}, { 3, 4} }     
                }
            };
arr4d1[0, 0, 0, 0]; // 返します1
arr4d1[0, 0, 0, 1]; // 返します2
arr4d1[0, 0, 1, 0]; // 返します3
arr4d1[0, 0, 1, 1]; // 返します4
int[,,,] arr4d2 = new int[1, 2, 2, 2]{
		{
			{ {1, 2}, {3, 4} },
			{ {5, 6}, {7, 8} }
		}
	};
arr4d2[0, 0, 0, 0]; // 返します1
arr4d2[0, 0, 0, 1]; // 返します2
arr4d2[0, 0, 1, 0]; // 返します3
arr4d2[0, 0, 1, 1]; // 返します4
arr4d2[0, 1, 0, 0]; // 返します5
arr4d2[0, 1, 0, 1]; // 返します6
arr4d2[0, 1, 1, 0]; // 返します7
arr4d2[0, 1, 1, 1]; // 返します8

上記の例では、4次元配列arr4d1指定[1、1、2、2、これはそれが3次元配列の行を含んでいることを示します。

同じ方法で、C# で次元配列の宣言と初期化ができます5次元、6次元配列および最大32次元配列。