C# の 配列型 (多次元配列)

C# の多次元配列 (矩形配列)

C# では表形式のデータ構造を表すための、多次元配列を定義することができます。

例えば char[,] a = new char[3,2] として配列を作成すると、3 行 2 列の配列になります。

C# の配列

この配列を使う例を示します。

char[,] a = new char[3, 2];
a[0, 0] = 'A';
a[0, 1] = 'B';
a[1, 0] = 'C';
a[1, 1] = 'D';
a[2, 0] = 'E';
a[2, 1] = 'F';
foreach (char c in a)
{
  Console.Write(c);
}
// ABCDEF

foreach 文で配列要素を列挙すると、行優先に巡回する形になります。

この形式では列数は一定になり、構造的に長方形 (矩形) の形になるので矩形配列 (Rectangular array) と呼ばれることもあります。

矩形配列の初期値は次のように与えられます。

char[,] a = new char[,] {
  { 'A', 'B' },
  { 'C', 'D' },
  { 'E', 'F' }
};

さらに省略して、次のようにも書けます。

char[,] a = {
  { 'A', 'B' },
  { 'C', 'D' },
  { 'E', 'F' }
};

C# のジャグ配列

C# のもう一つの多次元配列の形式は、ジャグ配列 (jagged array) と呼ばれているものです。配列の要素が配列となる形式です。

ジャグ配列はブラケットを二つ重ねて表記します。

C# の配列

行数は固定長ですが、それぞれの行に保存される配列の長さは決まっていません。このため、要素数によっては図のようにデコボコした形になります。(ジャグは英語で「ギザギザ」などの意味)

char[][] a = new char[3][];
a[0] = new char[] { 'A' };
a[1] = new char[] { 'B', 'C', 'D' };
a[2] = new char[] { 'E', 'F' };
foreach (char[] c in a)
{
  Console.WriteLine(c);
}
// A
// BCD
// EF

上記と同様の意味となるジャグ配列の初期化は、次のようにもかけます。

char[][] a = new char[][] {
  new char[] {'A'},
  new char[] {'B', 'C', 'D'},
  new char[] {'E', 'F'}
};

以上、ここでは C# の多次元配列として矩形配列とジャグ配列について説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門