3 maneras diferentes de recorrer una lista en C#
List<T>
son una de las estructuras de datos más utilizadas en el lenguaje C#.
Iterar sobre la List<T>
y realizar algunas operaciones sobre los elementos de la lista son, bastante comunes en nuestros proyectos diarios.
Para recorrer una lista en C# podemos utilizar 3 formas diferentes.
- Usando la sentencia C#
foreach
. - Usando el método C#
List.ForEach
. - Usando un simple bucle for.
Veamos un ejemplo para entenderlo mejor.
Primero crearemos una lista simple en C#.
List<string> languages = new List<string>() { "C#","Asp.Net","DotNet Core"};
Ahora vamos a ver diferentes maneras de bucle de una lista de C #.
Usando la sentencia C# foreach
Usar la sentencia foreach
para hacer un bucle en una lista de C# es un método ampliamente utilizado.
Y además podemos realizar cualquier operación sobre los elementos de la lista.
En el siguiente ejemplo he creado una lista de cadenas.
A continuación, un bucle que la lista utilizando foreach
y además la impresión de los elementos de la lista en la consola.
///Method to Loop C# list
void loopList()
{
List<string> languages = new List<string>() { "C#","Asp.Net","DotNet Core"};
foreach (string lang in languages)
{
Console.WriteLine(lang);
}
}
Ahora vamos a crear una lista de objetos y un bucle utilizando foreach
declaración.
Definimos una clase Person
y creamos una lista con dos elementos persona.
List<Person> persons = new List<Person>()
{
new Person() { Id = 1, Name="Arun" },
new Person() { Id = 2, Name="Kumar"}
};
Ahora podemos utilizar la sentencia foreach
para recorrer la lista de objetos.
void loopListOfObjects(List<Persons> persons){
foreach(var person in persons)
{
Console.WriteLine(person.Name);
Console.WriteLine(person.Id);
}
}
Usando el método C# List.ForEach
List<T>.ForEach
realiza la operación action
en cada elemento de la lista.
Acepta el parámetro Action<T>
parámetro delegado.
El siguiente ejemplo recorre la lista de objetos utilizando Action<T>
delegado.
persons.ForEach((person) =>
{
Console.WriteLine(person.Name);
Console.WriteLine(person.Id);
});
Utilizando la sentencia for
Podemos utilizar la sentencia for
para recorrer una lista en C#, si queremos realizar alguna acción sobre los elementos de la lista basándonos en el índice.
En caso contrario, utilice foreach
o los métodos List<T>.ForEach()
métodos.
for(var i=0;i<persons.Count;i++)
{
Console.WriteLine(persons[i].Name);
Console.WriteLine(persons[i].Id);
}
Resumen
En este tutorial hemos aprendido cómo recorrer una lista en C# utilizando las sentencias foreach
, List<T.ForEach
y for
.