e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。
C# プログラミングシリーズ
C# の配列と文字列 (1/3)
Yashavant Kanetkar
配列の定義
配列は、隣接するメモリ位置に格納された、同種の要素の集合です。ここでいう同種の要素とは、すべてが int、すべてが float、すべてが char などということです。次に例を示します。
int[] arr1 = { 1, 2, 3 } ;
float[] arr2 = { 1.5f, 2.5f, 3.5f } ;
char[] arr3 = { 'a', 'b', 'c' } ;
配列のすべての要素は、同じ型である必要があります。つまり、5 個の int と 5 個の float から構成される、10 個の数値の配列を作成することはできません。C# での配列は参照型であり、オブジェクトとして実装されます。抽象クラス System.Array から派生します。次のコードは、int 配列への参照を宣言する方法です。
int[ ] a ; // declare an int array reference int[ ] a1, a2 ; // declare two array references
ここでの a、a1、a2 は、int 配列への参照です。このように、配列を宣言してはいません。代わりに、配列への参照を宣言しています。これは単に、配列の参照用の領域を確保するだけです。配列の参照を宣言しておけば、次のようなステートメントを使用して配列を作成できます。
a = new int [ 5 ] ;
次の図は、メモリ内での配列と参照のようすを示しています。
配列を初期化するには、次のようなステートメントを記述する必要があります。
int[ ] arr1 = new int[ ] { 3, 5, 7, 9, 1 } ;
または
int[ ] arr1 = { 3, 5, 7, 9, 1 } ;
これにより、ヒープ上に配列が割り当てられて、すべての要素に値が格納されます。既定では、この配列のすべての要素は値 0 で初期化されます。オブジェクトの配列を作成することもできます。例を使用してこれを説明します。
sample[ ] s = new sample [ 5 ] ;
ここでの s は、参照の配列への参照です。配列はヒープ上に作成されます。配列自体の各要素は、sample オブジェクトに対する参照です。したがって、各参照はオブジェクトの値ではなくオブジェクトのアドレスを保持しています。既定では、すべての要素は null 参照で初期化されます。配列のメモリ内でのようすを次に示します。
オブジェクトのアドレスを配列の要素に代入するには、次のようなステートメントを記述する必要があります。
s [ 0 ] = new sample ( 1 ) ; s [ 1 ] = new sample ( 2 ) ; s [ 2 ] = new sample ( 3 ) ; s [ 3 ] = new sample ( 4 ) ; s [ 4 ] = new sample ( 5 ) ;
または
sample s[ ] = {
new sample ( 1 ),
new sample ( 2 ),
new sample ( 3 ),
new sample ( 4 ),
new sample ( 5 ),
}C や C++ と同様に、C# も配列の要素へのアクセスには、ゼロから始まるスキームを使用します。つまり、配列の最初の要素は、0 番目の位置にあるものと見なされます。
多次元配列
C# の多次元配列には、矩形の配列と不規則な配列の 2 種類があります。それぞれに対する C# の構文は異なります。



