Declaring and Initializing 2D
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 2/66。
C# では、2 次元配列は配列の配列であるジャグ配列を使用して作成でき、グリッドのような構造でデータを格納できます。
3行4列の整数型のジャグ配列を作成するには:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];上記のコードは、すべての要素が 0 で初期化された、次のような 2 次元配列を作成します:
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]ジャグ配列を値で初期化:
int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};これは2行3列の2次元配列を作成し、次の値を格納します:
[1, 2, 3]
[4, 5, 6]行数と列数を取得するには:
int rows = matrix.Length; // Returns 2
int columns = matrix[0].Length; // Returns 3 (for the first row)2D 配列の要素にアクセスするには、行と列の2つのインデックスが必要です。
特定の位置(行 1、列 2)に値を代入する:
grid[1][2] = 42;特定の位置(行 0、列 3)から値を取得:
int value = grid[0][3];配列のインデックスは 0 から始まることを覚えておいてください。有効な範囲は以下の通りです:
- 行: 0 から 2 (3 行の配列の場合)
- 列: 0 から 3 (4 列の配列の場合)
これらの範囲外の要素にアクセスしようとすると(例: grid[3][2])、IndexOutOfRangeException が発生します。
チートシート
C#でジャグ配列(2次元配列)を作成:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];値で初期化:
int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};次元を取得:
int rows = matrix.Length; // 行数
int columns = matrix[0].Length; // 最初の行の列数2つのインデックス[row][column]を使用して要素にアクセス:
grid[1][2] = 42; // Assign value
int value = grid[0][3]; // Read value配列のインデックスは0から始まります。範囲外のインデックスにアクセスするとIndexOutOfRangeExceptionがスローされます。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety