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


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

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

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

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

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

Дополнительные сведения о ключевом слове 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#