C# 多次元配列:2次元配列をコード例で徹底解説
C# 多次元配列
このチュートリアルでは、C# の多次元配列、特に 2 次元配列を明確なコードスニペットとともに探求します。
多次元配列に入る前に、C# の 1 次元配列を復習してください。
多次元配列では、各要素がそれ自体配列です。例:
int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
ここでは x は {1, 2, 3} と {3, 4, 5} という行を含む 2 次元配列です。各行は 3 要素の配列です。
C# における 2 次元配列
2 次元配列は本質的に行と列のテーブルです。配列の要素は 1 次元配列です。

画像では、行 {1, 2, 3} と {3, 4, 5} が 2D 配列の 2 行を表しています。
1. 宣言
2D 配列は以下のように宣言します:
int[ ] x = new int [2, 3];
ここでは x は 2 行 3 列、合計 6 個の値を保持できます。
注意:ブラケット間の単一のカンマ ([ , ]) が 2 次元配列を示します。
2. 初期化
宣言時に配列を初期化できます:
int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
またはサイズと値を同時に指定:
int[ ] x = new int[2, 3]{ {1, 2, 3}, {3, 4, 5} };
3. 要素へのアクセス
ゼロベースのインデックスを使用:x[row, column]。例:
// 2D 配列
int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
// 1 行目の最初の要素
x[0, 0]; // 1
// 2 行目の 3 番目の要素
x[1, 2]; // 5
// 1 行目の 3 番目の要素
x[0, 2]; // 3

例:C# 2D 配列
using System;
namespace MultiDArray {
class Program {
static void Main(string[] args) {
// 2D 配列を初期化
int[ ] numbers = {{2, 3}, {4, 5}};
// 1 行目の最初の要素にアクセス
Console.WriteLine("Element at index [0, 0] : "+numbers[0, 0]);
// 2 行目の最初の要素にアクセス
Console.WriteLine("Element at index [1, 0] : "+numbers[1, 0]);
}
}
}
出力
Element at index [0, 0] : 2 Element at index [1, 0] : 4
この例では numbers は行 {2, 3} と {4, 5} を持ちます。示されたインデックスを使って値を出力します。
numbers[0, 0]– 1 行目の最初の要素 (2)numbers[1, 0]– 2 行目の最初の要素 (4)
要素の変更
インデックスに新しい値を代入して配列を変更します:
using System;
namespace MultiDArray {
class Program {
static void Main(string[] args) {
int[ ] numbers = {{2, 3}, {4, 5}};
// 古い要素
Console.WriteLine("Old element at index [0, 0] : "+numbers[0, 0]);
// 新しい値を代入
numbers[0, 0] = 222;
// 新しい要素
Console.WriteLine("New element at index [0, 0] : "+numbers[0, 0]);
}
}
}
出力
Old element at index [0, 0] : 2 New element at index [0, 0] : 222
ここでは [0, 0] の値が 2 から 222 に変更されます。
ネストしたループでの反復処理
using System;
namespace MultiDArray {
class Program {
static void Main(string[] args) {
int[ ] numbers = { {2, 3, 9}, {4, 5, 9} };
for(int i = 0; i < numbers.GetLength(0); i++) {
Console.Write("Row "+ i+": ");
for(int j = 0; j < numbers.GetLength(1); j++) {
Console.Write(numbers[i, j]+" ");
}
Console.WriteLine();
}
}
}
}
出力
Row 0: 2 3 9 Row 1: 4 5 9
外側のループは行 (GetLength(0)) を、内側のループは列 (GetLength(1)) を反復します。
注意: 3 次元配列は複数の 2D 配列を含みます:
int[ , ] numbers = { { { 1, 3, 5 }, { 2, 4, 6 } }, { { 2, 4, 9 }, { 5, 7, 11 } } };
ここでは [ , ] (2 つのカンマ) が 3D 配列を示します。
C言語
- 20℃における比抵抗係数 — 材料総合リファレンス
- セラミックヒーター(セラミック発熱体)完全解説:金属線ヒーター比較での優位性(均一加熱・低温・長寿命・低コスト)
- C# 配列をマスターする:宣言、初期化、操作
- C# ジャグ配列をマスターする:宣言、初期化、アクセス
- C++配列を関数に渡す完全ガイド:1次元・多次元配列の実例付き
- C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
- C++動的配列の確保をマスター:コード例付き実践ガイド
- C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
- MATLAB:多次元配列と特殊配列をマスターする
- Java配列コピー技法:包括的ガイド
- Java NavigableSetインターフェースをマスター:ナビゲーション、ソート、実践例