C# 配列(Array)
配列は、同じ型の要素を格納する固定サイズの順序付けられたコレクションです。配列はデータを格納するためのコレクションであり、通常は同じ型の変数の集まりと見なされます。
配列変数の宣言は、number0、number1、...、number99 という個々の変数を宣言するのではなく、numbers のような変数を宣言し、numbers
すべての配列は連続したメモリ位置で構成されています。最も低いアドレスが最初の要素に対応し、最も高いアドレスが最後の要素に対応します。
配列の宣言
C# で配列を宣言するには、次の構文を使用できます:
datatype[] arrayName;
ここで、
- datatype配列に格納される要素の型を指定します。
- [ ]配列のランク(次元)を指定します。ランクは配列のサイズを指定します。
- arrayName配列の名前を指定します。
例:
double[] balance;
配列の初期化
配列を宣言しても、メモリ内で配列は初期化されません。配列変数を初期化するときに、配列に値を代入できます。
配列は参照型であるため、次を使用する必要があります:newキーワードを使用して配列のインスタンスを作成します。
例:
double[] balance = new double[10];
配列への代入
インデックス番号を使用して、個々の配列要素に値を代入できます。例:
double[] balance = new double[10]; balance[0] = 4500.0;
配列の宣言と同時に配列に値を代入することもできます。例:
double[] balance = { 2340.0, 4523.69, 3421.0};
配列を作成して初期化することもできます。例:
int [] marks = new int[5] { 99, 98, 92, 97, 95};
上記の場合、配列のサイズを省略することもできます。例:
int [] marks = new int[] { 99, 98, 92, 97, 95};
配列変数を別のターゲット配列変数に代入することもできます。この場合、ターゲットとソースは同じメモリ位置を指します:
int [] marks = new int[] { 99, 98, 92, 97, 95};
int[] score = marks;
配列を作成すると、C# コンパイラは配列型に基づいて各配列要素をデフォルト値に暗黙的に初期化します。たとえば、int 配列のすべての要素は 0 に初期化されます。
配列要素へのアクセス
要素は、インデックス付きの配列名を使用してアクセスします。これは、要素のインデックスを配列名の後の角括弧内に配置することで実現されます。例:
double salary = balance[9];
以下は、上記の3つの概念(配列の宣言、代入、アクセス)を使用した例です:
例
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int [] n = new int[10]; /* n は 10 個の整数を持つ配列です */
int i,j;
/* 配列 n の要素を初期化します */
for ( i = 0; i < 10; i++ )
{
n[ i ] = i + 100;
}
/* 各配列要素の値を出力します */
for (j = 0; j < 10; j++ )
{
Console.WriteLine("Element[{0}] = {1}", j, n[j]);
}
Console.ReadKey();
}
}
}
上記のコードがコンパイルおよび実行されると、次の結果が生成されます:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
使用foreachループ
前述の例では、for ループを使用して各配列要素にアクセスしました。次を使用することもできます: foreachステートメントを使用して配列を反復処理します。
次の例では、foreach を使用して配列を反復処理します:
例
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int [] n = new int[10]; /* n は 10 個の整数を持つ配列です */
/* 配列 n の要素を初期化します */
for ( int i = 0; i < 10; i++ )
{
n[i] = i + 100;
}
/* 各配列要素の値を出力します */
foreach (int j in n )
{
int i = j-100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
Console.ReadKey();
}
}
}
上記のコードがコンパイルおよび実行されると、次の結果が生成されます:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
C# 配列の詳細
C# では、配列は非常に重要であり、さらに詳細を理解する必要があります。以下に、C# プログラマーが知っておくべき配列に関連する重要な概念を示します:
| 概念 | 説明 |
|---|---|
| 多次元配列 | C# は多次元配列をサポートしています。多次元配列の最も単純な形式は 2 次元配列です。 |
| ジャグ配列 | C# はジャグ配列、つまり配列の配列をサポートしています。 |
| 関数への配列の受け渡し | インデックスを指定せずに配列名を指定することで、配列へのポインタを関数に渡すことができます。 |
| パラメータ配列 | これは通常、未知の数のパラメータを関数に渡すために使用されます。 |
| Array クラス | System 名前空間で定義され、すべての配列の基本クラスであり、配列のさまざまなプロパティとメソッドを提供します。 |