配列
スポンサーリンク
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
スポンサーリンク