foreach, in (Справочник по C#)

Оператор foreach повторяет группу вложенных операторов для каждого элемента массива или коллекции объектов, реализующих интерфейс IEnumerable или IEnumerable. Оператор foreach используется для итерации коллекции с целью получения необходимой информации, однако его не следует использовать для добавления или удаления элементов исходной коллекции во избежание непредвиденных побочных эффектов. Если нужно добавить или удалить элементы исходной коллекции, следует использовать цикл for.

Внедренные операторы продолжают выполняться для каждого элемента массива или коллекции. После завершения итерации всех элементов коллекции управление переходит к следующему оператору после блока foreach.

В любой точке блока foreach можно разорвать цикл с помощью ключевого слова break или перейти к следующей итерации в цикле с помощью ключевого слова continue.

Цикл foreach также можно разорвать посредством операторов goto, return или throw.

Дополнительные сведения о ключевом слове foreach и примеры кода приведены в следующих разделах:

Использование оператора foreach с массивами (Руководство по программированию на C#)

Практическое руководство. Доступ к классу коллекции с помощью оператора foreach (Руководство по программированию в C#)

Пример

Следующий код показывает три примера.

  • Типичный цикл foreach, который отображает содержимое массива целых чисел

  • цикл for, который делает то же самое

  • цикл 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#