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
Instrucciones de iteración (Referencia de C#)