C# ジャグ配列をマスターする:宣言、初期化、アクセス
C# ジャグ配列
このチュートリアルでは、C# のジャグ配列について学習します。実例を交えて、ジャグ配列の宣言、初期化、アクセス方法を解説します。
C# において、ジャグ配列は複数の配列を要素として持ちます。しかし多次元配列とは異なり、ジャグ配列内の各配列は異なるサイズを持つことができます。
ジャグ配列を学ぶ前に、以下を理解しておいてください:
- C# 配列
- C# 多次元配列
C# ジャグ配列の宣言
C# でジャグ配列を宣言する構文は以下の通りです:
dataType[ ][ ] nameOfArray = new dataType[rows][ ];
例:
// ジャグ配列を宣言
int[ ][ ] jaggedArray = new int[2][ ];
ここで:
int- 配列のデータ型[][]- ジャグ配列を表すjaggedArray- ジャグ配列の名前[2][]- ジャグ配列内の要素(配列)の数を表す
ジャグ配列の各要素も配列であるため、個々の配列のサイズを設定できます。例:
// 最初の配列のサイズを 3 に設定
jaggedArray[0] = new int[3];
// 2 番目の配列のサイズを 2 に設定
jaggedArray[1] = new int[2];
ジャグ配列の初期化
ジャグ配列の初期化にはいくつかの方法があります。例:
1. インデックス番号を使用
ジャグ配列を宣言後、インデックス番号で初期化します:
// 最初の配列を初期化
jaggedArray[0][0] = 1;
jaggedArray[0][1] = 3;
jaggedArray[0][2] = 5;
// 2 番目の配列を初期化
jaggedArray[1][0] = 2;
jaggedArray[1][1] = 4;
ここで:
- 最初の角括弧のインデックスはジャグ配列要素のインデックスを表す
- 2 番目の角括弧のインデックスは、ジャグ配列の各要素内の要素のインデックスを表す
2. 要素のサイズを設定せずに初期化
// 文字列ジャグ配列を宣言
int[ ][ ] jaggedArray = new int[2] [ ];
// 各配列を初期化
jaggedArray[0] = new int[] {1, 3, 5};
jaggedArray[1] = new int[] {2, 4};
3. 宣言時にジャグ配列を初期化
int[ ][ ] jaggedArray = { new int[ ] {10, 20, 30}, new int[ ] {11, 22}, new int[ ] {88, 99} };
ジャグ配列の要素へのアクセス
インデックス番号を使用してジャグ配列の要素にアクセスできます。例:
// 2 番目の配列の最初の要素
jaggedArray[1][0];
// 2 番目の配列の 2 番目の要素
jaggedArray[1][1];
// 1 番目の配列の 2 番目の要素
jaggedArray[0][1];
例:C# ジャグ配列
using System;
namespace JaggedArray {
class Program {
static void Main(string[] args) {
// ジャグ配列を作成
int[ ][ ] jaggedArray = { new int[] {1, 3, 5}, new int[] {2, 4}, };
// ジャグ配列の要素を出力
Console.WriteLine("jaggedArray[1][0]: " + jaggedArray[1][0]);
Console.WriteLine("jaggedArray[1][1]: " + jaggedArray[1][1]);
Console.WriteLine("jaggedArray[0][2]: " + jaggedArray[0][2]);
Console.ReadLine();
}
}
}
出力
jaggedArray[1][0]: 2 jaggedArray[1][1]: 4 jaggedArray[0][2]: 5
ここではジャグ配列内で:
jaggedArray[1][0]- 2 番目の配列の最初の要素jaggedArray[1][1]- 2 番目の配列の 2 番目の要素jaggedArray[0][2]- 1 番目の配列の 3 番目の要素
ジャグ配列の反復処理
C# ではループを使用してジャグ配列の各要素を反復処理できます。例:
using System;
namespace JaggedArray {
class Program {
static void Main(string[] args) {
// ジャグ配列を宣言
int[][] jaggedArray = new int[2][];
// ジャグ配列要素のサイズを設定
jaggedArray[0] = new int[3];
jaggedArray[1] = new int[2];
// 最初の配列を初期化
jaggedArray[0][0] = 1;
jaggedArray[0][1] = 3;
jaggedArray[0][2] = 5;
// 2 番目の配列を初期化
jaggedArray[1][0] = 2;
jaggedArray[1][1] = 2;
// 外側の for ループ
for (int i = 0; i < jaggedArray.Length; i++) {
Console.Write("Element "+ i +": ");
// 内側の for ループ
for (int j = 0; j < jaggedArray[i].Length; j++) {
Console.Write(jaggedArray[i][j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
出力
Element 0: 1 3 5 Element 1: 2 2
上記の例では、ネストした for ループでジャグ配列を反復処理しています。ここで:
1. 外側の for ループ
- ジャグ配列の要素(配列)にアクセスするため
jaggedArray.Length- ジャグ配列のサイズを取得
2. 内側の for ループ
- ジャグ配列内の個々の配列の要素にアクセスするため
jaggedArray[i].Length- ジャグ配列内のi番目の配列の要素数を取得
多次元配列を要素とするジャグ配列
C# では、多次元配列をジャグ配列の要素として使用することもできます。例:
int[ ][ , ] jaggedArrayTwoD = new int[2][ , ] { new int[,] { {1, 8}, {6, 7} }, new int[,] { {0, 3}, {5, 6}, {9, 10} } };
ここでは、ジャグ配列の各要素が多次元配列です:
new int[,] { {1, 8}, {6, 7} }- 2 要素の 2D 配列new int[ , ] { {0, 3}, {5, 6}, {9, 10} }- 3 要素の 2D 配列
例を見てみましょう:
using System;
namespace JaggedArray {
class Program {
static void Main(string[] args) {
// 2D 配列でジャグ配列を宣言・初期化
int[][,] jaggedArray = new int[3][ , ] { new int[ , ] { {1, 8}, {6, 7} }, new int[ , ] { {0, 3}, {5, 6}, {9, 10} }, new int[ , ] { {11, 23}, {100, 88}, {0, 10} } };
Console.WriteLine(jaggedArray[0][0, 1]);
Console.WriteLine(jaggedArray[1][2, 1]);
Console.WriteLine(jaggedArray[2][1, 0]);
Console.ReadLine();
}
}
}
出力
8 10 100
上記の例では、次のコードに注目してください:
jaggedArray[0][0, 1]
ここで:
[0]- ジャグ配列の最初の要素(2D 配列)を表す[0, 1]- 2D 配列内の最初の配列の 2 番目の要素を表す
C言語
- 信頼性の高いエレクトロニクスのための高度なBGA検査技術
- 先進E-タングナノセンサアレイで液体生体分子を高精度検出
- C# 配列をマスターする:宣言、初期化、操作
- C# 多次元配列:2次元配列をコード例で徹底解説
- C++配列を関数に渡す完全ガイド:1次元・多次元配列の実例付き
- C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
- C++動的配列の確保をマスター:コード例付き実践ガイド
- C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
- MATLAB:多次元配列と特殊配列をマスターする
- Java配列コピー技法:包括的ガイド
- Javaオブジェクト配列の作成:ステップバイステップガイド