Поделиться через


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

Обновлен: Ноябрь 2007

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

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

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

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

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

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

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

Пример

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

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

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 5.3.3.16 Операторы foreach

  • 8.8.4 Оператор foreach

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Ключевые слова C#

Инструкции итерации (Справочник по C#)

Другие ресурсы

Справочник по C#