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

C# リッジ配列

リッジ配列は配列の配列です。リッジ配列は文字列の配列ではなく配列を保存します。例えば、二次元配列は同じ要素の一次元配列の集合ですが、リッジ配列では各配列の要素の数が異なります。

リッジ配列は二つの方括号[][]で初期化されます。最初の括号は配列のサイズを指定し、第二の括号は格納する配列のサイズを指定します。

以下はリッジ配列の宣言例です。

int[][] jArray1 = new int[2]; // に2つの一次元配列を含むことができます 
int[][,] jArray2 = new int[3][,]; // に3つの二次元配列を含むことができます

上記の例では、jArray1最大で2つの一次元配列を格納できます。jArray2最大で3つの二次元配列を格納できます。配列[、]で二次元配列を指定します。

int[][] jArray = new int[2]; 
jArray[0] = new int[3]{1, 2, 3};
jArray[1] = new int[4]{4, 5, 6, 7 };

宣言時にリッジ配列を初期化することもできます。以下のようにします。

int[][] jArray = new int[2][]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
jArray[0][0]; //返却1
jArray[0][1]; //返却2
jArray[0][2]; //返却3
jArray[1][0]; //返却4
jArray[11]; //返却5
jArray[12]; //返却6
jArray[13]; //返却7

リッジ配列には、二つのforループを使用してアクセスできます。以下のようにします。

int[][] jArray = new int[2][]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
for(int i=0; i<jArray.Length; i++)
{
	for(int j=0; j < (jArray[i]).Length; j++)
		Console.WriteLine(jArray[i][j]);
}

以下のリッジ配列は、二つの括号[、]で指定された二次元配列を保存しています。

int[][,] jArray = new int[2][,];
jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }
jArray[1] = new int[2, 2] { { 7, 8 }, { 9, 10 } 
jArray[0][1, 1]; //返却4
                                             
jArray[11, 0]; //返却9
                                             
jArray[11, 1]; //返却10

もし、もう一つの括号を追加したら、それは配列の配列です。

int[][][] intJaggedArray = new int[2]}[][] 
                            {
                                new int[2][]  
                                { 
                                    new int[3] { 1, 2, 3},
                                    new int[2] { 4, 5} 
                                },
                                new int[1][]
                                { 
                                    new int[3] { 7, 8, 9}
                                }
                            };
Console.WriteLine(intJaggedArray[0][0][0]); // 1
Console.WriteLine(intJaggedArray[0][11]); // 5
    
Console.WriteLine(intJaggedArray[1][0][2]); // 9

上記の交差配列の例では、三つの方括号[][][]は配列の配列の配列を示しています。したがって、intJaggedArrayは二つの要素を含んでおり、これは二つの配列を意味します。それぞれの配列には一つの配列(一次元)が含まれています。intJaggedArray[0][0][0]は最初の内部配列の最初の要素を指しています。intJaggedArray[1][0][2]] 指向第二个内部数组的第三个元素。以下はその説明図です。

ジグザグ配列