Compartir a través de


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 System.Collections.IEnumerable o System.Collections.Generic.IEnumerable<T>.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 se muestran tres ejemplos:

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

  • un bucle de para que hace lo mismo

  • un bucle de foreach que mantiene un recuento del 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, vea 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#