C#のforeach文の基本!配列やコレクションを簡単に繰り返し処理する方法
生徒
「C#で配列やリストを1つずつ取り出して処理したいんですが、簡単な方法はありますか?」
先生
「はい、C#にはforeach文というとても便利な繰り返し処理の書き方があります。」
生徒
「for文とどう違うんですか?初心者でも使えますか?」
先生
「もちろん使えますよ!foreachは簡単に書けて、間違いも起きにくいんです。では、具体的に見ていきましょう。」
1. foreach文とは?
C#のforeach文は、「配列(はいれつ)」や「リスト」などのコレクション(複数のデータの集まり)を、順番に1つずつ取り出して処理するための文法です。
初心者でも使いやすく、繰り返し処理の中でももっともミスが少なく、直感的に書けるのが特徴です。
2. foreach文の基本構文
foreach文の書き方は、以下のようになります。
foreach (データ型 変数名 in コレクション名)
{
// 1つずつ取り出して処理
}
「コレクション名」から1つずつデータを取り出して、「変数名」に代入し、その中で処理を行います。すべての要素が処理されるまで自動で繰り返します。
3. 配列を使ったforeach文の例
まずは、配列を使った基本的なforeach文の例を見てみましょう。
string[] fruits = { "りんご", "バナナ", "みかん" };
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
このコードでは、fruitsという配列から1つずつ「くだもの」の名前を取り出して、表示しています。
りんご
バナナ
みかん
4. foreach文のイメージを簡単に説明
たとえば、お弁当箱の中に「おにぎり」「卵焼き」「唐揚げ」が入っているとします。foreach文は、それをフタを開けて、1つずつ取り出して食べるようなイメージです。
箱に入っている順番どおりに取り出して、すべて終わるまで繰り返します。自分で数えたり、管理する必要がないので、初心者でも使いやすいです。
5. List(リスト)でも使えるforeach文
C#には、配列のほかにもList(リスト)というコレクションがあります。foreach文は、Listにも同じように使えます。
using System.Collections.Generic;
List<int> numbers = new List<int>() { 10, 20, 30 };
foreach (int number in numbers)
{
Console.WriteLine(number);
}
10
20
30
Listの中の数字が1つずつ取り出されて、numberに入ります。
6. foreach文の注意点
foreach文の中では、基本的に要素の値を書き換えることはできません。
以下のようなコードはエラーになります:
string[] animals = { "ネコ", "イヌ", "トリ" };
foreach (string animal in animals)
{
animal = "ゾウ"; // ← これはエラーになります
}
取り出した変数animalは読み取り専用の扱いになるので、変更したい場合はfor文などを使う必要があります。
7. foreach文が便利な理由
- 配列やリストを1つずつ取り出す処理がとても簡単に書ける
- 要素数を気にしなくてよい(自動で最後まで繰り返してくれる)
- 読みやすくてエラーが少ないコードになる
初心者でも理解しやすく、よく使う構文のひとつなので、しっかり覚えておきましょう。