カテゴリ: C# 更新日: 2025/11/14

C#のforeachループを完全ガイド!初心者でもわかるコレクション操作の基本

C#のコレクションに対するforeachループの基本
C#のコレクションに対するforeachループの基本

先生と生徒の会話形式で理解しよう

生徒

「C#でリストや配列の中身を順番に取り出して使う方法はありますか?」

先生

「はい、C#ではforeachループを使うことで、コレクションの要素を順番に取り出して処理できます。」

生徒

「for文との違いはなんですか?」

先生

「for文は自分で数を数えながら処理しますが、foreachループはコレクションの要素を1つずつ自動で取り出してくれるんです。それでは実際に使い方を見ていきましょう!」

1. foreachループとは?

1. foreachループとは?
1. foreachループとは?

C#のforeachループは、配列やリストなどのコレクション(データをまとめて入れておく箱のようなもの)の中身を、順番に取り出して処理するための仕組みです。たとえば、リストの中に5人の名前が入っていたら、その名前を1人ずつ順番に取り出して表示したり計算に使ったりできます。

「foreach」という英単語は「for each(それぞれのために)」という意味で、その名前の通りコレクションの全ての要素に対して繰り返し処理を行います。

2. foreachループの基本構文

2. foreachループの基本構文
2. foreachループの基本構文

基本的な書き方は次のようになります。


foreach (データ型 変数名 in コレクション)
{
    // 繰り返し処理
}

ここで使われている「コレクション」という言葉は、配列(array)やリスト(List<T>)、辞書(Dictionary<TKey, TValue>)など、データをまとめて格納するものの総称です。foreachを使うと、これらのデータを順番に取り出して使えます。

3. 配列でのforeachループ例

3. 配列でのforeachループ例
3. 配列でのforeachループ例

配列に入れた数字を順番に表示する例を見てみましょう。


int[] numbers = { 10, 20, 30, 40, 50 };

foreach (int n in numbers)
{
    Console.WriteLine(n);
}

このコードを実行すると、配列に入っている数字が1つずつ表示されます。


10
20
30
40
50

for文と違って、「何番目の要素か」を意識せずにデータを順番に処理できるのが便利なポイントです。

4. List(リスト)でのforeachループ

4. List(リスト)でのforeachループ
4. List(リスト)でのforeachループ

次に、List<string>(文字列のリスト)でforeachを使ってみます。リストは配列より柔軟に使えるコレクションで、データの追加や削除が簡単にできます。


List<string> names = new List<string>() { "太郎", "花子", "次郎" };

foreach (string name in names)
{
    Console.WriteLine("こんにちは、" + name + "さん!");
}

こんにちは、太郎さん!
こんにちは、花子さん!
こんにちは、次郎さん!

このように、foreachを使うとリストの中身を1つずつ取り出して加工したり、表示したりできます。

5. foreachと辞書(Dictionary)の組み合わせ

5. foreachと辞書(Dictionary)の組み合わせ
5. foreachと辞書(Dictionary)の組み合わせ

辞書(Dictionary<TKey, TValue>)は「キー」と「値」をセットで管理するコレクションです。foreachを使うと、キーと値をまとめて取り出すことができます。


Dictionary<string, int> scores = new Dictionary<string, int>()
{
    { "太郎", 90 },
    { "花子", 85 },
    { "次郎", 70 }
};

foreach (KeyValuePair<string, int> entry in scores)
{
    Console.WriteLine(entry.Key + "さんの点数は" + entry.Value + "点です。");
}

太郎さんの点数は90点です。
花子さんの点数は85点です。
次郎さんの点数は70点です。

このようにforeachは、配列やリストだけでなく、辞書のような複雑なコレクションでも使えます。

6. foreachループを使うメリット

6. foreachループを使うメリット
6. foreachループを使うメリット
  • シンプルで読みやすい:インデックス番号を管理する必要がない。
  • バグが減る:要素数を数え間違えるエラーを防げる。
  • 幅広いコレクションに対応:配列、リスト、辞書などに共通して使える。

特にプログラミング初心者にとって、処理の流れを直感的に理解しやすいのがforeachの大きな魅力です。

まとめ

まとめ
まとめ

C#のforeachループは、配列やリスト、辞書などさまざまなコレクションに対して自然な形で繰り返し処理を行える便利な仕組みです。この記事では、基本的なforeachの構文から始まり、配列やリスト、辞書などの実例を通じて、コレクション操作の流れを具体的に理解できるように整理してきました。初心者でも扱いやすい構文であることに加えて、インデックス番号を気にせず使えるため、処理の流れが直感的になり、コードの見通しが良くなるという利点があります。

foreachの特長として、まずデータを一つずつ取り出して処理するだけでよいというシンプルさが挙げられます。配列であれリストであれ、たとえば「名前を順番に挨拶文にして画面に表示する」といった処理が、難しいロジックを考えることなく自然に書けます。特に、プログラミングを始めたばかりの人にとって、「順番に取り出して何かをする」という流れを理解するのは大事なステップであり、foreachはその学習を支えてくれる構文です。

一方で、辞書のようにキーと値がセットになっているコレクションでもforeachが活躍します。辞書の各要素にはキーと値が含まれており、それをまとめて取り出す際にforeachが自然な形で処理を手助けしてくれます。辞書はふだんの場面でもよく使われる構造であり、人名と点数、商品名と価格など、さまざまな場面で活用されます。foreachを使うことで、こうしたデータ構造の扱いもすぐに慣れていくことができるでしょう。

さらに、foreachは読みやすさだけでなく、バグを減らす効果もあります。for文でありがちな「インデックス番号の数え間違い」や「ループ条件の書き忘れ」などの問題が起こりにくくなります。要素数を取得したり、インデックスを管理する必要がないため、初心者でも安心して使えます。このようにforeachは、コードの安全性や可読性を高める大事な役割を持っており、C#を使う上で覚えておいて損はありません。

では、実践的な応用例として、リストの中から特定の条件に合うものを探すプログラムを書いてみましょう。ここでは、整数のリストから偶数だけを抽出して表示するサンプルを紹介します。


List<int> values = new List<int>() { 1, 2, 3, 4, 5, 6 };
foreach (int v in values)
{
    if (v % 2 == 0)
    {
        Console.WriteLine("偶数: " + v);
    }
}

このように、foreachと条件分岐を組み合わせると、特定のデータだけを抽出したり、条件を満たす要素を探したりする処理が自然に書けます。C#のコレクション操作は、さまざまなアプリケーションや業務システムで欠かせない機能であり、foreachを理解しておくことでより効率的にプログラムを構築できるようになります。

最後に、辞書を使った応用例として、複数科目の点数リストから合計点を計算する処理も紹介します。


Dictionary<string, int> subjects = new Dictionary<string, int>()
{
    { "国語", 80 },
    { "数学", 90 },
    { "英語", 85 },
    { "理科", 75 },
    { "社会", 88 }
};

int total = 0;
foreach (KeyValuePair<string, int> entry in subjects)
{
    total += entry.Value;
}
Console.WriteLine("合計点: " + total);

foreachを使うことで、辞書に格納された科目と点数を順番に処理し、合計を求める流れがとてもスムーズに書けます。C#で実際の業務処理を行う場合にも、こうした繰り返し処理はよく登場するため、foreachを使いこなせるようにしておくと非常に役立ちます。特にデータの集計や分類といった作業は、初心者がつまずきやすいポイントでもありますが、foreachを使えば自然な形で処理を覚えることができます。

foreachループは、単なる「繰り返しの仕組み」ではなく、C#のコレクション操作を基礎から支える大事な構文です。これを習得することで、配列やリスト、辞書といったデータ構造をより自在に扱えるようになり、アプリケーション開発の幅も一気に広がります。プログラミングを続ける中で、より高度な処理に挑戦するときにも、foreachで身につけた感覚は必ず役立つことでしょう。

先生と生徒の振り返り会話

生徒

「foreachループって、いろいろなデータに使えるんですね。配列だけじゃなくて辞書にも使えるとは知りませんでした!」

先生

「そうなんです。C#のコレクションは種類が豊富ですが、foreachを使えばどれも自然に扱えるようになりますよ。」

生徒

「インデックスを気にしなくていいのが、こんなに楽だとは思いませんでした。for文よりわかりやすくて安心感があります。」

先生

「初心者にとっては特にそうですね。処理の流れを自然に学べるので、最初の習得にも向いています。」

生徒

「辞書の合計点を計算する例もわかりやすかったです。実務でも使えそうですね!」

先生

「もちろんです。foreachは日常的なデータ処理でも欠かせない構文なので、今後もしっかり使いこなしていきましょう。」

カテゴリの一覧へ
新着記事
New1
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New2
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New3
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New4
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.4
Java&Spring記事人気No4
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決