e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。
C# プログラミングシリーズ
C# の配列と文字列 I
Yashavant Kanetkar
矩形配列
矩形配列では、配列のすべての行が同じ長さです。つまり、2 次元の配列があるとすると、すべての行に同じ数の要素が含まれます。この性質は、C または C++ での配列と似ています。次のコード スニペットは、矩形配列の考え方を示しています。
int [ , ] arr1 = new int [ , ] { { 3, 5, 7, 9 }, { 11, 13, 15, 17 } } ;または
int [ , ] arr1 = { { 2, 4, 6, 8 }, {10, 12, 14, 16 } } ;
矩形配列の要素を印刷するには、次のようなコードを記述する必要があります。
foreach ( int i in arr1 )
Console.Write ( i + " " ) ;
foreach ループを使用すると、配列内の各要素を反復処理できます。 foreach ループは常に、1 つの行のすべての要素を処理してから、次の行に移動します。foreach を使用すると、2 次元配列を列ごとに処理する必要がなくなります。
不規則配列
不規則配列は、長さが一定ではない複数の 1 次元配列の配列です。不規則配列は、矩形配列と同じ方法で作成することはできません。1 行目には 4 つの整数が含まれ、2 行目には 2 つの整数が含まれる、2 つの行で構成される不規則配列を作成する必要があるものとします。この配列は、次のようにして定義できそうです。
int [ , ] arr1 = new int [ , ] { { 3, 5, 7, 1 }, { 11, 13 } } ;
または
int [ , ] arr1 = { { 3, 5, 7, 1 }, { 11, 13 } } ;しかし、これらの定義はどちらも間違っています。なぜなら、各行の要素の数が異なり、コンパイラは行ごとに存在する要素の数を追跡しないためです。したがって、後で arr [ 1, 2 ] のような配列アクセス式を使用しても、正しい要素にはアクセスできません。不規則配列を初期化する正しい方法は次のとおりです。
int[ ] [ ] arr1 = new int [ 2 ] [ ] ;
arr1 [ 0 ] = new int [ 3 ] { 3 , 5, 7, 1 } ;
arr1 [ 1 ] = new int [ 2 ] { 11, 13 } ;この不規則配列のメモリ内でのようすは次のとおりです。
3 次元の不規則配列は、次のようにして作成できます。
int[ ] [ ] [ ] arr = new int [ 2 ] [ ] [ ] ; arr [ 0 ] = new int [ 3 ] [ ] ; arr [ 0 ] [ 0 ] = new int [ 3 ] ; arr [ 0 ] [ 1 ] = new int [ 4 ] ; arr [ 0 ] [ 2 ] = new int [ 5] ;
このように、3 次元配列は 2 つの 2 次元配列で構成されます。最初の 2 次元配列は 3 つの 1 次元配列で構成され、最終的に 3 つの 1 次元配列はすべての要素の数が異なります。
前の説明から、矩形配列ではすべてのインデックスが 1 組の角かっこ内に入れられ、不規則配列では要素ごとに専用の角かっこに入れられることは明らかです。2 次元の矩形配列では int [ , ] と記述する必要がありますが、2 次元の不規則配列では int[ ][ ] と記述する必要があります。



