配列

スポンサーリンク

1 次元配列

1 次元配列の宣言と要素へのアクセスは次のように書きます。

char[] arr = new char[3];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';

配列のデータ型は char[] や int[] のように,要素型の後に [] を続けて書きます。
C/C++ と異なり, char arr[] といった書き方はしないため注意します。

この例の new char[3] は,要素型を char とする要素数 3 の配列のデータ領域を確保する処理です。
宣言 char[] arr を書いただけでは配列用の領域は確保されないため,必ず new 演算子によって領域を確保する必要があります。

配列リテラルは,波括弧 { ... } の中に要素を列挙して書きます。

arr = new char[] { 'a', 'b', 'c' };
arr = new[] { 'a', 'b', 'c' };
arr = { 'a', 'b', 'c' };

配列を使ったプログラムの例を示します。

static void Main(string[] args)
{
    char[] arr = new char[] { 'a', 'b', 'c' };
    foreach (char c in arr)
        Console.WriteLine(c);
}

配列は長さの情報を持っており,配列名.Length で長さを取得できます。

static void Main(string[] args)
{
    char[] arr = new char[] { 'a', 'b', 'c' };
    Console.WriteLine(arr.Length);  // 3
}

多次元配列

多次元配列は次のように書いて宣言します。

char[,] arr = new char[2,3];
arr[0,0] = 'a';
arr[0,1] = 'b';
arr[0,2] = 'c';
arr[1,0] = 'A';
arr[1,1] = 'B';
arr[1,2] = 'C';

ジャグ配列

ジャグ配列 (jagged array) とはギザギザした配列,すなわち配列の配列のことです。

char[][] arr = new char[2][];

arr[0] = new char[3];
arr[0][0] = 'a';
arr[0][1] = 'b';
arr[0][2] = 'c';

arr[1] = new char[5];
arr[1][0] = 'A';
arr[1][1] = 'B';
arr[1][2] = 'C';
arr[1][3] = 'D';
arr[1][4] = 'E';

コマンドライン引数

Main メソッドの引数部分を (string[] args) と記述すると,コマンドライン引数を受け取ることができます。

static void Main(string[] args)
{
    foreach (string a in args)
        Console.WriteLine(a);
}
> hoge.exe hello, world "hello, world"
hello,
world
hello, world

配列としての文字列

文字列は,次のようにして,あたかも文字の配列のように扱うことができます。
これはインデクサと呼ばれる言語機能によって実現されています (インデクサの説明は別の記事にあります)。

string str = "hello";
char c = str[0];  // h
char d = str[1];  // e
スポンサーリンク