C#のforeach文を使ってループ処理をします。
書式
foreach (変数名 in 対象配列またはコレクション)
{
...(処理)
}
または、
foreach (型名 変数名 in 対象配列またはコレクション)
{
...(処理)
}
「対象配列またはコレクション」には下記のいずれかを指定できます。
- 配列
- オブジェクト コレクション
- IEnumerableインターフェイスを持つクラス
「変数名」の変数にループ対象変数の要素が順番に代入され、各要素に対してforeachブロック内の処理が実行されます。
記述例
foreach (string s in stringList) {
if (s == "OK") OutputOKMessage();
}
プログラム例
UI
下図のUIを作成します。Windowsフォームにボタンを1つ、複数行のテキストボックスを配置します。
コード
下記のコードを記述します。button1のClickイベントを実装します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ForEachLoopDemo
{
public partial class FormSimpleForEach : Form
{
public FormSimpleForEach()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int[] a = new int[5];
a[0] = 24;
a[1] = 33;
a[2] = 12;
a[3] = 8;
a[4] = 25;
foreach (int x in a) {
textBox1.Text += x.ToString() + " / ";
}
}
}
}
解説
下記コードで配列に値を代入します。
int[] a = new int[5];
a[0] = 24;
a[1] = 33;
a[2] = 12;
a[3] = 8;
a[4] = 25;
foreach文でループを実行します。配列aの要素に対して1回ずつループを実行します。ループ内では配列aの値は 変数xに代入されます。1回目のループでは、a[0]の値でループが実行され、変数xの値はa[0]の値である24となります。
foreach (int x in a) {
textBox1.Text += x.ToString() + " / ";
}
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。foreachループが実行され、テキストボックスに配列aの値が "/" で区切られて表示されます。
参考情報
- IEnumerator<T>インターフェイスを実行しforeachに対応したクラスを作成する方法はこちら
- IEnumeratorインターフェイスを実行しforeachに対応したクラスを作成する方法はこちら
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2023-12-17
作成日: 2011-02-05