foreach, in (Referência de C#)

A instrução foreach repete um grupo de instruções inseridos para cada elemento em uma matriz ou uma coleção do objetos que implementa a interface System.Collections.IEnumerable ou System.Collections.Generic.IEnumerable<T>. A instrução foreach é usada para iterar na coleção para obter as informações que você deseja, mas não pode ser usada para adicionar ou remover itens da coleção de origem para evitar efeitos colaterais imprevisíveis. Se você precisar adicionar ou remover itens da coleção de origem, use um loop for.

As instruções inseridas continuam em execução para cada elemento da matriz ou coleção. Após a iteração ter sido concluída para todos os elementos na coleção, o controle é transferido para a próxima instrução que segue o bloco foreach.

Em qualquer ponto dentro do bloco foreach, você pode sair do loop usando a palavra-chave break ou seguir para a próxima iteração no loop, usando a palavra-chave continue.

Um loop foreach também pode ser encerrado pelas instruções goto, retorn ou throw.

Para obter mais informações sobre a palavra-chave foreach e exemplos de códigos, consulte os seguintes tópicos:

Usando foreach com matrizes

Como acessar uma classe de coleção com foreach

Exemplo

O código a seguir mostra três exemplos:

  • um típico loop foreach que exibe o conteúdo de uma matriz de inteiros

  • um loop for, que faz a mesma coisa

  • um loop foreach que mantém uma contagem do número de elementos na matriz

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
}

Especificação da Linguagem C#

For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.

Consulte também

Referência de C#
Guia de Programação em C#
Palavras-chave de C#
Instruções de Iteração
for