ホームに戻る
出典 :
関連 :
目次 :
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';
}
}