C# foreach ループ:配列とコレクションを簡単に反復処理
C# foreach ループ
foreach ループが C# で配列やコレクションの反復処理をどう簡素化し、可読性とパフォーマンスを向上させるかを発見してください。
C# において foreach ループは、配列、リスト、その他のコレクションを扱う際、従来の for ループに代わるよりクリーンで表現力豊かな選択肢を提供します。インデックス処理を自動で行うため、コードが読みやすく、エラーが起きにくくなります。
始める前に、以下の基礎トピックを復習してください:
foreach ループの構文
foreach (element in iterableItem) {
// foreach ループの本体
}
iterableItem は配列、リスト、または IEnumerable を実装する任意の型です。
foreach ループの仕組み

in キーワードは、各反復で iterableItem から各アイテムを選択し、変数 element に代入します。ループは要素ごとに 1 回実行されるため、反復回数はコレクション内のアイテム数と等しくなります。
例 1:for ループで配列を出力
using System;
namespace Loop {
class ForLoop {
public static void Main(string[] args) {
char[] myArray = {'H','e','l','l','o'};
for (int i = 0; i < myArray.Length; i++) {
Console.WriteLine(myArray[i]);
}
}
}
}
例 2:foreach ループで配列を出力
using System;
namespace Loop {
class ForEachLoop {
public static void Main(string[] args) {
char[] myArray = {'H','e','l','l','o'};
foreach (char ch in myArray) {
Console.WriteLine(ch);
}
}
}
}
両方のプログラムは以下を出力します:
H e l l o
foreach 版はより短く、インデックス計算を排除し、オフバイワンエラーのリスクを減らします。
例 3:性別配列での男女カウント
この例では、配列内の 'm' と 'f' の出現回数を集計します。
using System;
namespace Loop {
class GenderCount {
public static void Main(string[] args) {
char[] gender = {'m','f','m','m','m','f','f','m','m','f'};
int male = 0, female = 0;
foreach (char g in gender) {
if (g == 'm') male++;
else if (g == 'f') female++;
}
Console.WriteLine("Number of male = {0}", male);
Console.WriteLine("Number of female = {0}", female);
}
}
}
出力:
Number of male = 6 Number of female = 4
例 4:foreach でリストの合計を計算
List<int> を使用して、foreach がジェネリックコレクションとシームレスに動作することを示します。
using System;
using System.Collections.Generic;
namespace Loop {
class SumList {
public static void Main(string[] args) {
var numbers = new List<int>() { 5, -8, 3, 14, 9, 17, 0, 4 };
int sum = 0;
foreach (int number in numbers) {
sum += number;
}
Console.WriteLine("Sum = {0}", sum);
Console.ReadLine();
}
}
}
結果:
Sum = 44
配列とコレクションの両方のシナリオで、foreach はよりクリーンで保守しやすいコードを提供します。要素の読み取りのみが必要で、直接的なインデックス操作を必要としない場合は常に foreach を優先してください。
C言語
- C# while 文と do-while 文をマスターする:構文、例、ベストプラクティス
- C# for ループをマスターする:構文、フロー、実践例
- C++ forループ完全ガイド:ステップバイステップでマスター
- C++ while/do-whileループ完全ガイド:繰り返し処理をマスターする
- C言語forループ完全マスター:構文、仕組み、実践例
- C言語while/do-whileループ完全マスター:実践例付き
- C++ do-while文:構文、実践例、ネストしたループ
- Python forループ完全マスター: 構文・例・高度なパターン
- Python whileループ完全マスター: 構文・例・ベストプラクティス
- Python ループ制御 break & continue 完全マスター
- Java拡張forループをマスター:構文、例、ベストプラクティス