こんにちは、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#のジャグ配列についての説明です。
ジャグ配列は不規則な形状のデータを扱う場合に便利ですが、メモリ効率やパフォーマンスに注意する必要があります。
多次元配列は規則的な形状のデータを扱う場合に適していますが、ジャグ配列よりも柔軟性が低いです。
用途や状況に応じて適切な方を選択しましょう。