ホームに戻る
出典 :
【C#入門】foreachの使い方(break、continueでの制御も解説) | 侍エンジニアブログ foreach文(C#) - 超初心者向けプログラミング入門 foreach ステートメントでクラスを使用可能にする - C# | Microsoft Learn そのforeach本当に要りますか?~for/foreach等をLINQに書き換える~ - Qiita
関連 :
[.NET]コレクション [C++]範囲ベースfor
目次 :

foreach() 文

コレクションの全要素に対して繰り返し処理を行う制御構文。
using System; namespace Sample { class Sample { static void Main() { // コレクション(配列)の宣言、初期化 char[] src = new char[5]{'a', 'b', 'c', 'd', 'e'}; // foreach 文で src の全要素を走査 foreach( var chr in src ) { Console.WriteLine( $"{chr}" ); } } } }
実行結果 :
a b c d e
上記は foreach の基本的な例である。
コレクション src の先頭要素が一時変数 chr に格納され、処理を実行すると次の要素…というように、
コレクションの全要素に対して共通の処理が実行される。
for ループと異なり、インデクスの指定や加算、終了判定が必要なく、確実にコレクションの全要素を走査することができる。
また、一時変数は var による型推論を使用できる。

foreach における制限

コレクションの要素が値型(数値型および構造体)の場合、foreach 節内で要素の値を書き換えることは不可能である。 その場合は for や while 、またはLINQによる写像を用いるとよい。
static void Main() { char[] src = new char[5]{'a', 'b', 'c', 'd', 'e'}; // foreach 文で src の全要素を走査 foreach( char chr in src ) { // この文はエラーとなる chr = 's'; } }