Compartilhar via


foreach, in (Referência de C#)

A instrução foreach repete um grupo de instruções inseridas para cada elemento em uma matriz ou uma coleção de objetos que implementa a interface de IEnumerable ou de IEnumerable. A instrução foreach é usada para iterar por meio da 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ê precisa adicionar ou remover itens da coleção de origem, use um loop for.

As instruções inseridas continuam a ser executadas para cada elemento na matriz ou na 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 declaração que segue o bloco de foreach.

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

Um loop foreach também pode ser terminado por declarações de goto, return, ou de throw.

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

Usando foreach com matrizes (Guia de Programação em C#)

Como acessar uma classe de coleção com foreach (Guia de Programação em C#)

Exemplo

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

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

  • um loop para que faz a mesma coisa

  • um loop foreach que mantém uma contagem do número de elementos da 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#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

Palavras-chave C#

Instruções de iteração (Referência de C#)

for (Referência de C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#