multidimensional arrays
このチュートリアルでは、C#の多次元配列とギザギザの配列について例を挙げて説明します。多次元配列は、長方形配列とも呼ばれます。
前のチュートリアルでは、配列と1次元配列についてすべて調べました。
このチュートリアルでは、C#の多次元配列とギザギザの配列について例とともに詳しく学習します。
=> ここで詳細なC#トレーニングチュートリアルをご覧ください
学習内容:
C#多次元配列
多次元配列は、長方形配列とも呼ばれます。多次元配列は、さらに2次元配列または3次元配列に分類できます。
データがライナーシーケンシャルに格納される1次元配列とは異なり、多次元配列はデータを表形式、つまり行と列の形式で格納します。このデータの表形式の配置は、マトリックスとも呼ばれます。
2次元配列
多次元配列の最も単純な形式は、2次元配列です。 2次元配列は、複数の1次元配列を積み重ねることで形成できます。次の図は、概念をよりよく理解するのに役立ちます。
上の画像は、2次元配列がどのように見えるかをグラフで表したものです。行と列があることで示されます。したがって、2次元配列の各ビルディングブロックは、行番号と列番号を表すインデックスで構成されます。
多次元配列は一次元配列のように宣言されますが、唯一の違いは、行や列などを表すために角括弧内にコンマが含まれていることです。
string( , ) strArray = new string(2,2);
それでは、2次元配列を初期化する例を見てみましょう。
2次元配列はによって宣言されます
string ( , ) fruitArray = new string (2,2) { {“apple” , “mango”} , /* values for row indexed by 0 */ {“orange”, “banana”} , /* values for row indexed by 1 */ };
例えば、 配列要素に「i」行と「j」列がある場合、次のインデックスarray (i、j)を使用してアクセスできます。
string ( , ) fruitArray = new string (2,2) { {“apple” , “mango”} , /* values for row indexed by 0 */ {“orange”, “banana”} , /* values for row indexed by 1 */ }; /* output for the elements present in array*/ for (int i = 0; i <2; i++) { for (int j = 0; j < 2; j++) { Console.WriteLine('fruitArray({0},{1}) = {2}', i, j, fruitArray(i,j)); } } Console.ReadKey();
次のプログラムの出力は次のようになります。
FruitArray (0,0) =アップル
FruitArray (0,1) =マンゴー
FruitArray (1.0) =オレンジ
FruitArray (1,1) =バナナ
説明:
プログラムの最初の部分は配列宣言です。行サイズ2と列サイズ2の文字列型配列を宣言しました。次のパートでは、forループを使用して配列にアクセスしようとしました。
値にアクセスするためにネストされたforループを使用しました。外側のforループは行番号を提供します。つまり、「ゼロ番目」の行から始まり、次に進みます。内側のforループは、列番号を定義します。各行番号が最初のforループによって渡されると、2番目のforループは列番号を割り当て、セルからのデータにアクセスします。
C#のギザギザの配列
C#で使用できるもう1つのタイプの配列は、ギザギザの配列です。ギザギザの配列は、配列で構成される配列として定義できます。ギザギザの配列は、他のデータ型の代わりに配列を格納するために使用されます。
ギザギザの配列は、2つの角括弧を使用して初期化できます。最初の角括弧は、定義されている配列のサイズを示し、2番目の角括弧は、ギザギザの配列内に格納される配列の次元を示します。
ギザギザの配列宣言
説明したように、ギザギザの配列は次の構文で初期化できます。
string( )( ) stringArr = new string(2)( );
ギザギザの配列には、長さが異なる複数の配列を格納できます。長さ2の配列と長さ5の別の配列を宣言でき、これらの両方を同じギザギザの配列に格納できます。
ギザギザの配列内の要素を埋める
まず、ギザギザの配列を初期化します。
arrayJag(0) = new string (2) ; arrayJag(1) = new string (3) ;
上記の例では、角括弧内に定義されたサイズの配列を含むインデックス「0」および「1」で文字列型のギザギザの配列を初期化しました。 0番目のインデックスには長さ2の文字列型配列が含まれ、インデックス「1」には長さ3の文字列型配列が含まれます。
これが、配列を初期化する方法です。次に、値を初期化してギザギザの配列内に配置します。
arrayJag(0) = new string (2) {“apple”, “mango”}; arrayJag(1) = new string (3) {“orange”, “banana”, “guava”};
したがって、上記の例に示すように、ギザギザの配列は値を使用して宣言することもできます。値を追加するには、値のリストを含む宣言されたギザギザの配列の後に中括弧を配置します。
ギザギザの配列を宣言しながら初期化することもできます。
これは、次のアプローチを使用して実行できます。
string()() jaggedArray = new string (2)() { new string() {“apple”, “mango”}, new string() {“orange”, “banana”, “guava”} };
上記の例では、サイズ2の「jaggedArray」という名前のJagged配列を定義し、中括弧内でその構成配列を定義して宣言しました。
ギザギザの配列からデータを取得する
これまで、ギザギザの配列内にデータを配置する方法を学びました。次に、ギザギザの配列からデータを取得する方法について説明します。前に説明したのと同じ例を使用して、その配列からすべてのデータを取得しようとします。
string()() jaggedArray = new string (2)() { new string() {“apple”, “mango”}, new string() {“orange”, “banana”, “guava”} }; /* retrieve value from each array element */ for (int i = 0; i 次のプログラムの出力は次のようになります。
アップルマンゴー
オレンジバナナグアバ
説明:
クライアントサーバーとWebベースのアプリケーションの違い
要素を横切るために2つのforループを使用しました。最初のforループは、ギザギザの配列のインデックスを定義しました。別のネストされたforループを使用して、指定されたギザギザの配列インデックスに存在する配列を横断し、結果をコンソールに出力しました。
覚えておくべきポイント:
- ギザギザの配列は、配列の配列です。つまり、配列を値として格納します。
- 指定されたインデックスが存在しない場合、ギザギザの配列は範囲外の例外をスローします。
結論
このチュートリアルでは、C#のギザギザ配列と多次元配列について学習しました。 2次元配列を宣言して初期化する方法を学びました。また、2次元配列からデータを取得するための簡単なプログラムを作成しました。
次に、配列の配列であるギザギザの配列について詳しく説明しました。
ギザギザの配列は、配列を値として格納するため、それ自体が一意です。ギザギザの配列は他の配列と非常に似ていますが、格納する値のタイプが異なります。
=> すべての人のための無料のC#トレーニングチュートリアル
推奨読書