Home / 記事 / プログラム言語 / C# / C# の配列と文字列 I (1/3) / 矩形配列と不規則配列

e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。

C# プログラミングシリーズ

C# の配列と文字列 I

Yashavant Kanetkar
Yashavant Kanetkar

インデックス

  1. 配列の定義
  2. 矩形配列と不規則配列

矩形配列

矩形配列では、配列のすべての行が同じ長さです。つまり、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[ ][ ] と記述する必要があります。

コメント

コメントするにはログイン、もしくはユーザ登録を行ってください。

発売中

LET US C(上)
インド人ITエンジニアのCプログラミングのバイブル。通算100万冊以上売れています。
― 2,520円 ―

Y. Kanetkar

発売中

Introduction to Object Oriented Programming & C++
C++を例に、多彩なサンプルコードと簡潔な説明でOOPプログラミングの実際が理解できる。
2,940

Y. Kanetkar

発売中

Microsoft .NET Web Application Security
APプログラムの作り方で不正侵入の防御率を向上させる手法を解説。今までにないセキュリティーの手法を紹介します。
3,990円

Vijay Mukhi

2008年の11月発売予定

Quest C++ ビジュアルラーニングコース
これがあれば、見て聞くだけで楽しみながらプログラミングテクニックが身につきます。
― 9,975円 ―

Y. Kanetkar Asang Dani

2008年の11月発売予定

Programmer's Guide to Web Application Security
Web System への侵入方法と原理を解説する事により、防止方法を理解することが出来る。
3,990

Vijay Mukhi

フォーラムの最新ポスト