foreach, in (Referencia de C#)

La instrucción foreach repite un grupo de instrucciones incrustadas para cada elemento de una matriz o colección de objetos que implementa la interfaz IEnumerable o IEnumerable. La instrucción foreach se utiliza para recorrer la colección en iteración y obtener la información deseada, pero no se puede utilizar para agregar o quitar elementos de la colección de origen, ya que se pueden producir efectos secundarios imprevisibles. Si necesita agregar o quitar elementos de la colección de origen, utilice un bucle for.

Las instrucciones del bucle siguen ejecutándose para cada elemento de la matriz o la colección. Cuando ya se han recorrido todos los elementos de la colección, el control se transfiere a la siguiente instrucción fuera del bloque foreach.

En cualquier punto dentro del bloque foreach, puede salir del bucle utilizando la palabra clave break o pasando directamente a la iteración siguiente del bucle mediante la palabra clave continue.

También se puede salir de un bucle foreach mediante las instrucciones goto, return o throw.

Para obtener más información acerca de la palabra clave foreach, incluidos ejemplos de código, vea los temas siguientes:

Utilizar foreach con matrices (Guía de programación de C#)

Cómo: Obtener acceso a una clase de colección mediante Foreach (Guía de programación de C#)

Ejemplo

El código siguiente muestra tres ejemplos:

  • un bucle foreach típico que muestra el contenido de una matriz de enteros

  • un bucle for que hace lo mismo

  • un bucle foreach que mantiene el número de elementos de la 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
}

Especificación del lenguaje C#

Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

Palabras clave de C#

Instrucciones de iteración (Referencia de C#)

for (Referencia de C#)

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#