C#プログラミング入門!初心者向け その17 配列 ③ジャグ配列

ビジュアルスタジオC#
Visualstudio
みつる君
みつる君

こんにちは、C#のプログラミングのみつるです。

今回はC#の、ジャグ配列について詳しく説明します。

ジャグ配列

マリさん
マリさん

ジャグ配列とは、配列の要素がそれぞれ別の配列を参照するような配列のことです。

例えば、int型のジャグ配列を宣言するには、次のように書きます。

int型のジャグ配列

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
          int[][] jaggedArray = new int[3][];
        }
    }
}

マリさん
マリさん

このコードでは、jaggedArrayという名前のジャグ配列を作成しています。

この配列は3つの要素を持ちますが、それぞれの要素は別のint型の配列を参照します。

つまり、jaggedArray[0]、jaggedArray[1]、jaggedArray[2]はそれぞれint型の配列です。

しかし、これらの配列は長さが異なっても構いません。

例えば、次のように初期化することができます。

初期化

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
          jaggedArray[0] = new int[5];
      jaggedArray[1] = new int[3];
      jaggedArray[2] = new int[4];
        }
    }
}

みつる君
みつる君

このように、ジャグ配列は不規則な形状の配列を表現することができます。

ジャグ配列の要素にアクセスするには、二重の添え字を使います。

例えば、jaggedArray[1][2]は、jaggedArrayの2番目の要素であるint型の配列の3番目の要素を指します。

ジャグ配列に対してforeach文を使うこともできますが、その場合は二重のforeach文を使う必要があります。

例えば、次のコードでは、ジャグ配列のすべての要素を表示しています。

ジャグ配列のすべての要素を表示

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
          foreach (int[] array in jaggedArray)
      {
          foreach (int element in array)
          {
              Console.WriteLine(element);
          }
      }
        }
    }
}

宣言について

マリさん
マリさん

ジャグ配列は、多次元配列とは異なります。

多次元配列とは、同じ型の要素を持つ正方形や立方体などの形状の配列です。

多次元配列を宣言するには、次のように書きます。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
          int[,] multiArray = new int[3,4];
        }
    }
}

みつる君
みつる君

このコードでは、multiArrayという名前の多次元配列を作成しています。

この配列は3行4列の要素を持ちます。

多次元配列にアクセスするには、カンマで区切られた添え字を使います。

例えば、multiArray[1,2]は、multiArrayの2行目3列目の要素を指します。

多次元配列に対してforeach文を使うこともできますが、その場合は一重のforeach文で十分です。

例えば、次のコードでは、多次元配列のすべての要素を表示しています。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
          foreach (int element in multiArray)
      {
          Console.WriteLine(element);
      }
        }
    }
}

マリさん
マリさん

以上がC#のジャグ配列についての説明です。

ジャグ配列は不規則な形状のデータを扱う場合に便利ですが、メモリ効率やパフォーマンスに注意する必要があります。

多次元配列は規則的な形状のデータを扱う場合に適していますが、ジャグ配列よりも柔軟性が低いです。

用途や状況に応じて適切な方を選択しましょう。

侍エンジニアPlus
タイトルとURLをコピーしました