Bucle foreach de C#
C# bucle foreach
En este artículo, aprenderemos sobre los bucles foreach (una alternativa al bucle for) y cómo usarlos con matrices y colecciones.
C# proporciona una alternativa fácil de usar y más legible al bucle for, el bucle foreach cuando se trabaja con matrices y colecciones para iterar a través de los elementos de matrices/colecciones. El bucle foreach itera a través de cada elemento, por lo que se llama bucle foreach.
Antes de continuar con el ciclo foreach, visite:
- C# para bucle
- matrices de C#
- Colecciones de C#
Sintaxis del bucle foreach
foreach (element in iterable-item) { // body of foreach loop }
Aquí iterable-item puede ser una matriz o una clase de colección.
¿Cómo funciona el bucle foreach?
El in
La palabra clave utilizada junto con el bucle foreach se utiliza para iterar sobre el iterable-item . La palabra clave in selecciona un elemento del iterable-item en cada iteración y almacenarlo en la variable element .
En la primera iteración, el primer elemento de iterable-item se almacena en el elemento. En la segunda iteración, se selecciona el segundo elemento y así sucesivamente.
La cantidad de veces que se ejecutará el bucle foreach es igual a la cantidad de elementos en la matriz o colección.
Aquí hay un ejemplo de iteración a través de una matriz usando el ciclo for:
Ejemplo 1:Imprimir una matriz usando el 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]);
}
}
}
}
La misma tarea se puede realizar utilizando el ciclo foreach.
Ejemplo 2:Imprimir una matriz usando un 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);
}
}
}
}
Cuando ejecutamos ambos programas, la salida será:
H e l l o
En el programa anterior, el ciclo foreach itera sobre la matriz, myArray . En la primera iteración, el primer elemento, es decir, myArray[0] se selecciona y almacena en ch .
De manera similar, en la última iteración, el último elemento, es decir, myArray[4] es seleccionado. Dentro del cuerpo del bucle, el valor de ch está impreso.
Cuando observamos ambos programas, el programa que usa el bucle foreach es más legible y fácil de entender. Esto se debe a su sintaxis simple y expresiva.
Por lo tanto, se prefiere el bucle foreach al bucle for cuando se trabaja con matrices y colecciones.
Ejemplo 3:Atravesar una matriz de género usando bucle foreach
Este programa calcula el número de candidatos masculinos y femeninos.
using System;
namespace Loop
{
class ForEachLoop
{
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);
}
}
}
Cuando ejecutamos el programa, la salida será:
Number of male = 6 Number of female = 4
Ejemplo 4:bucle foreach con Lista (Colección)
Este programa calcula la suma de elementos en una Lista .
using System;
using System.Collections.Generic;
namespace Loop {
class ForEachLoop {
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();
}
}
}
Cuando ejecutamos el programa, la salida será:
Sum = 44
En este programa, el bucle foreach se usa para recorrer una colección. Recorrer una colección es similar a recorrer una matriz.
El primer elemento de la colección se selecciona en la primera iteración, el segundo elemento en la segunda iteración y así sucesivamente hasta el último elemento.
Lenguaje C