C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でジャグ配列を定義する方法|宣言・初期化・要素アクセスの基本

ジャグ配列(Jagged Array)とは

ジャグ配列とは、簡単に言えば「配列の配列」のことです。通常の二次元配列と異なり、各行の要素数を個別に設定できるため、柔軟なデータ構造を実現できるのが大きな特徴です。

C#でint型のジャグ配列「points」を定義するには、次のように宣言します。

int [][] points;

ジャグ配列の初期化方法

宣言したジャグ配列は、作成時に各要素となる配列を同時に初期化できます。以下のように、波括弧の中にさらに配列を記述していきます。

int[][] points = new int[][]{new int[]{10,5},new int[]{30,40}, new int[]{70,80},new int[]{60,70}};

この例では、4つのint型配列を要素として持つジャグ配列を作成しています。それぞれの内部配列は独立しているため、要素数を変えることも可能です。

ジャグ配列の要素へアクセスする

ジャグ配列の特定の要素にアクセスするには、インデックスを2段階で指定します。最初のインデックスでどの配列を選ぶか、次のインデックスでその配列内のどの要素かを指定します。

points[i][j];

サンプルコード

以下は、C#でジャグ配列を扱う完全なサンプルプログラムです。二重のforループを使って、配列内のすべての要素を順番にコンソールへ出力しています。

using System;

namespace Demo {
    class MyArray {
        static void Main(string[] args) {

            int[][] points = new int[][]{new int[]{10,5},new int[]{30,40}, new int[]{70,80},new int[]{60,70}};
            int i, j;

            for (i = 0; i < 3; i++) {
                for (j = 0; j < 2; j++) {
                    Console.WriteLine("a[{0}][{1}] = {2}", i, j, points[i][j]);
                }
            }
            Console.ReadKey();
        }
    }
}

実行結果

上記のプログラムを実行すると、次のように各要素の値が出力されます。

a[0][0] = 10
a[0][1] = 5
a[1][0] = 30
a[1][1] = 40
a[2][0] = 70
a[2][1] = 80

まとめ

ジャグ配列は「配列の配列」という構造を持つため、行ごとに異なる長さのデータを扱いたい場合に非常に便利です。宣言は int[][] のように角括弧を重ねて行い、初期化時やアクセス時も points[i][j] のようにインデックスを段階的に指定する点を覚えておきましょう。

  1. JavaScriptでメソッドを定義するには?初心者向けに基本から解説

    JavaScriptのメソッドとは?JavaScriptにおけるメソッドとは、オブジェクトに対して実行される「動作(アクション)」のことです。メソッドの本体は関数定義であり、その関数がオブジェクトのプロパティ値として格納されます。つまり、「オブジェクトの中に組み込まれた関数」がメソッドであると考えると分かりやすいでしょう。メソッド定義の基本構文オブジェクトリテラルの中で、プロパティ名に続けて function キーワードを使い関数を定義するだけで、メソッドを作成できます。var オブジェクト名 = { プロパティ名: 値, メソッド名: function() { // 実行した

  2. JavaScriptで配列をreduceする方法|reduce()メソッドで配列要素を合計する

    JavaScriptのreduce()メソッドは、配列の各要素を先頭から順に処理し、その結果を1つの値にまとめる(畳み込む)ための配列メソッドです。数値の合計を求めるだけでなく、配列からオブジェクトを組み立てたり、条件に応じてデータを集約したりと、幅広い場面で活用されています。reduce()メソッドの基本構文 { return 戻り値; }, 初期値);accumulator(アキュムレータ):直前のコールバック関数が返した値(累積値)。最初のループでは初期値、または配列の第1要素が代入されます。currentValue:現在処理している配列の要素。初期値:累積値の出発点となる値。省略し