Bucles foreach en C#: Itera arrays y colecciones con facilidad
Bucles foreach en C#
Descubre cómo el bucle foreach simplifica la iteración sobre arrays y colecciones en C#, mejorando la legibilidad y el rendimiento.
En C#, el bucle foreach ofrece una alternativa más limpia y expresiva al bucle for tradicional al trabajar con arrays, listas y otras colecciones. Maneja automáticamente la indexación, haciendo tu código más fácil de leer y menos propenso a errores.
Antes de sumergirte, repasa estos temas fundamentales:
Sintaxis del bucle foreach
foreach (element in iterableItem) {
// cuerpo del bucle foreach
}
El iterableItem puede ser un array, una lista o cualquier tipo que implemente IEnumerable.
Cómo funciona el bucle foreach

La palabra clave in selecciona cada elemento de iterableItem en cada iteración y se lo asigna a la variable element. El bucle se ejecuta una vez por elemento, por lo que el número de iteraciones es igual al número de elementos en la colección.
Ejemplo 1: Imprimiendo un array con bucle for
using System;
namespace Loop {
class ForLoop {
public static void Main(string[] args) {
char[] myArray = {'H','e','l','l','o'};
for (int i = 0; i < myArray.Length; i++) {
Console.WriteLine(myArray[i]);
}
}
}
}
Ejemplo 2: Imprimiendo un array con bucle foreach
using System;
namespace Loop {
class ForEachLoop {
public static void Main(string[] args) {
char[] myArray = {'H','e','l','l','o'};
foreach (char ch in myArray) {
Console.WriteLine(ch);
}
}
}
}
Ambos programas producen:
H e l l o
La versión foreach es más corta, elimina cálculos de índice y reduce el riesgo de errores off-by-one.
Ejemplo 3: Contando hombres y mujeres en un array de género
Este ejemplo cuenta ocurrencias de 'm' y 'f' en un array.
using System;
namespace Loop {
class GenderCount {
public static void Main(string[] args) {
char[] gender = {'m','f','m','m','m','f','f','m','m','f'};
int male = 0, female = 0;
foreach (char g in gender) {
if (g == 'm') male++;
else if (g == 'f') female++;
}
Console.WriteLine("Number of male = {0}", male);
Console.WriteLine("Number of female = {0}", female);
}
}
}
Salida:
Number of male = 6 Number of female = 4
Ejemplo 4: Sumando una lista con foreach
Usar un List<int> demuestra que foreach funciona perfectamente con colecciones genéricas.
using System;
using System.Collections.Generic;
namespace Loop {
class SumList {
public static void Main(string[] args) {
var numbers = new List<int>() { 5, -8, 3, 14, 9, 17, 0, 4 };
int sum = 0;
foreach (int number in numbers) {
sum += number;
}
Console.WriteLine("Sum = {0}", sum);
Console.ReadLine();
}
}
}
Resultado:
Sum = 44
Tanto en escenarios de array como de colección, foreach entrega código más limpio y mantenible. Prefiérelo siempre que solo necesites leer elementos y no requieras manipulación directa de índices.
Lenguaje C
- Dominando bucles while y do-while en C#: Sintaxis, ejemplos y mejores prácticas
- Dominando el bucle for en C#: Sintaxis, flujo y ejemplos prácticos
- Dominando los Bucles for en C++: Guía Paso a Paso
- Bucles While y Do-While en C++: Dominando la Repetición en Tu Código
- Dominando el bucle for en C: sintaxis, funcionamiento y ejemplos prácticos
- Dominando bucles while y do-while en C: ejemplos prácticos
- Bucle do‑while en C++: Sintaxis, ejemplos prácticos y bucles anidados
- Dominando bucles for en Python: Sintaxis, ejemplos y patrones avanzados
- Dominando el bucle while en Python: Sintaxis, ejemplos y mejores prácticas
- Dominando control de bucles en Python: break y continue
- Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas