
こんにちは、C#のプログラミングのみつるです。
今回はC#の、多次元配列について詳しく説明します。
一次元配列は前回説明済みなので、そちらを参照してください。
多次元配列

多次元配列とは、配列の要素が配列であるようなデータ構造のことです。
例えば、二次元配列は行と列で構成される表のようなもので、三次元配列は行と列と奥行きで構成される立体的なものです。
C#では、多次元配列を宣言するには、型名の後に[,]や[,,]などのようにカンマを入れた角括弧を付けます。
例えば、int型の二次元配列を宣言するには、int[,] array;と書きます。
三次元配列なら、int[,,] array;と書きます。

多次元配列を初期化するには、要素を{}で囲んで指定します。
要素はカンマで区切りますが、各次元ごとに{}で囲む必要があります。
例えば、int型の二次元配列を初期化するには、以下のように書きます。
二次元配列
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int[,] array = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
}
}
}

この場合、array[0,0]は1、array[1,2]は6、array[2,1]は8という値になります。
二次元配列では、最初のインデックスが行番号、二番目のインデックスが列番号を表します。
三次元配列

三次元配列を初期化する場合は、以下のように書きます。
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int[,,] array = {
{
{1, 2, 3},
{4, 5, 6}
},
{
{7, 8, 9},
{10, 11, 12}
}
};
}
}
}

この場合、array[0,0,0]は1、array[1,1,2]は12、array[0,1,1]は5という値になります。
三次元配列では、最初のインデックスが奥行き番号、二番目のインデックスが行番号、三番目のインデックスが列番号を表します。
多次元配列の長さや要素数を取得

多次元配列の長さや要素数を取得するには、LengthプロパティやGetLengthメソッドを使います。
Lengthプロパティは全ての要素数を返しますが、GetLengthメソッドは指定した次元の要素数を返します。例えば、
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine(array.Length);
Console.WriteLine(array.GetLength(0));
Console.WriteLine(array.GetLength(1));
Console.WriteLine(array.GetLength(2));
}
}
}
24
2
2
3

というように使います。

多次元配列を操作するには、for文やforeach文などのループ文を使います。
for文では各次元ごとにループ変数を用意し、インデックスとして使います。例えば、
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
for (int k = 0; k < array.GetLength(2); k++)
{
Console.Write(array[i,j,k] + " ");
}
Console.WriteLine();
}
}
}
}
}

というように書くと、
1 2 3
4 5 6
7 8 9
10 11 12

というように出力されます。

foreach文では全ての要素を順番に取り出すことができます。例えば、
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
foreach (int x in array)
{
Console.Write(x + " ");
}
}
}
}

というように書くと、
1 2 3 4 5 6 7 8 9 10 11 12

というように出力されます。

以上が、C#の多次元配列についての説明です。
多次元配列は、表や立体などの複雑なデータ構造を扱うときに便利です。
ぜひ使ってみてください。




