C# 配列の要素を取得する

配列の要素を取得するには以下の方法があります。
– 添え字を直接指定して取得
– foreach文で取得
– for文で取得
## 配列の要素を添え字を直接指定して取得
配列の要素は添え字(要素に割り振られる番号)を直接指定して取得できます。

配列名[添え字]
配列名[添え字]:取得したい配列名の要素の添え字を指定
添え字は0から順番に割り振られる
添え字は配列名のあとに[]で囲んで指定
1. 配列名[添え字]のように配列名を書き、取得したい要素の添え字を[]の中に書くことで要素を取得できる
using static System.Console;
class Test { static void Main() { string[] kago = { "イチゴ", "ミカン" }; WriteLine(kago[0]); WriteLine(kago[1]); } }
イチゴ
ミカン
kago[0]:配列kagoの添え字[0]の要素を指定
kago[1]:配列kagoの添え字[1]の要素を指定
1. kago[0]で配列kagoの添え字[0]の要素の”イチゴ”を指定
2. イチゴと表示される
3. kago[1]で配列kagoの添え字[1]の要素の”ミカン”を指定
4. ミカンと表示される

## 配列の要素をforeach文で取得
foreach文は配列の要素数の回数ループします。
1回のループで先頭から順番に1つの要素が変数に代入されます。
ブロック内で変数を使った処理ができます。

foreach文 (型名 変数名 in  配列名)
    {
        変数を使った処理;
    }
型名 変数名:配列の要素を代入する変数の宣言
配列名:要素を取得したい配列名を指定
変数を使った処理;:配列の要素を代入した変数を使った処理
1. 型名 変数名の変数に配列名の添え字[0]の要素が代入される
2. ブロック内の処理が実行される
例えば、ブロック内でWrite(変数名)と書いたら、取得した要素が表示できる
3. 処理が終わると先頭まで戻り、変数に配列名の添え字[1]の要素が代入される
4. 再びブロック内の処理が実行される
5. 変数に代入する要素がなくなるまで繰り返し実行される

このようにforeach文を使うと、ループごとに配列の要素を1つずつ取得できます。

using static System.Console;
class Test { static void Main() { string[] kago = { "イチゴ", "ミカン" }; foreach文 (string nakami in kago) { WriteLine(nakami); } } }
イチゴ
ミカン
string nakami:配列の要素を代入する変数に、string型の変数nakamiを宣言
kago:要素を取得する配列に配列kagoを指定
WriteLine(nakami);:処理が実行されると、変数nakamiを表示
1. string nakamikagoの添え字[0]の要素の”イチゴ”が代入される
2. WriteLine(nakami);が実行され、イチゴと表示される
3. 先頭まで戻る
4. string nakamikagoの添え字[1]の要素の”ミカン”が代入される
5. 先頭まで戻る
6. WriteLine(nakami);が実行され、ミカンと表示される
7. 代入する要素がなくなったので、foreach文を終了する

## 配列の要素をfor文で取得
for文を配列の要素数の回数だけループ処理を実行します。
iの値はループごとに0から1ずつ増えます。
配列の要素[i]でループごとに先頭から1つの要素を順番に取得します。

for文 (int i = 0; i < 配列名.Length; i++)
{
   配列名[i];
}

int i = 0;:変数iを0で初期化
i < 配列名.Length;:配列名.Lengthで配列の要素数を取得。iが配列の要素数より多くなったらループを終了
配列名[i];:配列の要素[i]を取得
i++:iの値はループごとに1ずつ増える

1. int i = 0;で変数iを宣言し、0で初期化する
2. i < 配列名.Length;を実行し、iが配列の要素数以下ならtrueになり、ブロック内の処理を実行
3. 配列名[i];で配列名[i]の要素を取得
4. i++が実行され、iが1増える
5. 「 2.3.4. 」のループ処理を、配列の要素数の回数繰り返す
using static System.Console;
class Test { static void Main() { string[] kago = { "イチゴ", "ミカン" }; for文 (int i = 0; i < kago.Length; i++) { WriteLine(kago[i]); } } }
1回目のループ

1. int i = 0;でiに0を代入
2. i < kago.Length;のkago.Lengthは配列kagoの要素の数の2を指定し、iが2以下の場合trueになる
iの値は0なのでtrueになり、ブロック内の処理が実行される
3. WriteLine(kago[i]);でkago[i]の値が表示される
iは0なので、kago[0]の値のイチゴが表示される
4. i++が実行されiが1増えて1になる

2回目のループ

1. i < kago.Length;が実行され、iの値は1なのでtrueになり、ブロック内の処理が実行される
2. WriteLine(kago[i]);でkago[1]の値のミカンが表示される
3. i++が実行されiが1増えて2になる

3回目のループ

1. i < kago.Length;が実行され、iの値は2なのでfalseになりfor文が終了する