foreach、in (C# リファレンス)

foreach ステートメントは、System.Collections.IEnumerable インターフェイスまたは System.Collections.Generic.IEnumerable<T> インターフェイスを実装する配列またはオブジェクト コレクションのそれぞれの要素に対して埋め込みステートメントを繰り返します。foreach ステートメントは、コレクションを繰り返し処理して目的の情報を取得するために使用しますが、予期しない副作用を防ぐため、ソース コレクションに対する項目の追加または削除には使用しないでください。ソース コレクションに対して項目を追加または削除する必要がある場合は、for ループを使用します。

埋め込みステートメントは、配列またはコレクション内の各要素に対して繰り返し実行されます。コレクション内の全要素に対する繰り返しが完了すると、制御は、foreach ブロックに続く次のステートメントに移動します。

foreach ブロック内の任意の位置で、break キーワードを使用してループから抜けることができます。または、continue キーワードを使用して、ループ内の次の反復処理にスキップできます。

goto ステートメント、return ステートメント、または throw ステートメントを使用しても、foreach ループを抜けることができます。

foreach キーワードとコード例の詳細については、以下のトピックを参照してください。

配列での foreach の使用 (C# プログラミング ガイド)

方法 : foreach を使用してコレクション クラスにアクセスする (C# プログラミング ガイド)

使用例

次のコードでは、3 とおりの例を示します:

  • 整数の配列の内容を表示 foreach の一般的なループ

  • 同じことを実行します には のループ

  • 配列の要素の数を保持する foreach のループ

class ForEachTest
{
    static void Main(string[] args)
    {
        int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
        foreach (int element in fibarray)
        {
            System.Console.WriteLine(element);
        }
        System.Console.WriteLine();


        // Compare the previous loop to a similar for loop.
        for (int i = 0; i < fibarray.Length; i++)
        {
            System.Console.WriteLine(fibarray[i]);
        }
        System.Console.WriteLine();


        // You can maintain a count of the elements in the collection.
        int count = 0;
        foreach (int element in fibarray)
        {
            count += 1;
            System.Console.WriteLine("Element #{0}: {1}", count, element);
        }
        System.Console.WriteLine("Number of elements in the array: {0}", count);
    }
    // Output:
    // 0
    // 1
    // 1
    // 2
    // 3
    // 5
    // 8
    // 13

    // 0
    // 1
    // 1
    // 2
    // 3
    // 5
    // 8
    // 13

    // Element #1: 0
    // Element #2: 1
    // Element #3: 1
    // Element #4: 2
    // Element #5: 3
    // Element #6: 5
    // Element #7: 8
    // Element #8: 13
    // Number of elements in the array: 8
}

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

参照

関連項目

C# のキーワード

繰り返しステートメント (C# リファレンス)

for (C# リファレンス)

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス