C# 多次元配列
C# は多次元配列をサポートしています。多次元配列は矩形配列とも呼ばれます。
string 変数の2次元配列は次のように宣言できます:
string [,] names;
または、int 変数の3次元配列は次のように宣言できます:
int [ , , ] m;
2次元配列
多次元配列の最も単純な形式は2次元配列です。2次元配列は、本質的に、1次元配列のリストです。
2次元配列は、x 行と y 列を持つテーブルと考えることができます。次は3行4列の2次元配列です:
したがって、配列内の各要素は、a[ i , j ] という形式の要素名で識別されます。ここで a は配列名であり、i と j は a 内の各要素を一意に識別する添字です。
2次元配列の初期化
多次元配列は、括弧内で各行に値を指定することで初期化できます。次は3行4列の配列です。
int [,] a = new int [3,4] {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};
2次元配列の要素へのアクセス
2次元配列内の要素は、添字(つまり配列の行インデックスと列インデックス)を使用してアクセスします。例:
int val = a[2,3];
上記のステートメントは、配列内の3行目の4番目の要素を取得します。上の図で確認できます。次のプログラムを見てみましょう。ネストされたループを使用して2次元配列を処理します。
例
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
/* 5行2列の配列 */
int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
int i, j;
/* 配列内の各要素の値を出力 */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
}
}
Console.ReadKey();
}
}
}
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
/* 5行2列の配列 */
int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
int i, j;
/* 配列内の各要素の値を出力 */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
}
}
Console.ReadKey();
}
}
}
上記のコードがコンパイルおよび実行されると、次の結果が生成されます:
a[0,0]: 0 a[0,1]: 0 a[1,0]: 1 a[1,1]: 2 a[2,0]: 2 a[2,1]: 4 a[3,0]: 3 a[3,1]: 6 a[4,0]: 4 a[4,1]: 8その他の拡張
C# 配列