foreach、in (C# 參考)

對於在陣列或物件集合中實作 System.Collections.IEnumerableSystem.Collections.Generic.IEnumerable<T> 介面的每個項目,foreach 陳述式會重複內嵌陳述式群組。 foreach 陳述式是用來逐一查看集合,以取得所需的資訊,但是不能用來加入或移除來源集合的項目,以避免無法預期的副作用。 如果您必須加入或移除來源集合的項目,請使用 for 迴圈。

內嵌陳述式繼續執行在陣列或集合中的每個項目。 反覆查看項目完成在集合中的所有項目之後,程式控制權會轉移到 foreach 區塊之後的下一個陳述式。

您可以在 foreach 區塊內的任一位置使用 break 關鍵字中斷迴圈,或使用 continue 關鍵字跳至迴圈內的下一個反覆運算。

foreach 迴圈也可以由 gotoreturnthrow 陳述式結束。

如需 foreach 關鍵字及其程式碼範例的詳細資訊,請參閱下列主題:

搭配陣列使用 foreach (C# 程式設計手冊)

HOW TO:使用 foreach 存取集合類別 (C# 程式設計手冊)

範例

下列程式碼顯示三個範例:

  • 顯示陣列內容整數的一般 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# 參考