Aprendiendo a usar ConvertAll() en C#
Una función útil para convertir colecciones
La función ConvertAll() es una herramienta útil en C# que permite convertir cada elemento de una colección a un tipo específico. Esta función se puede utilizar en situaciones comunes de programación, como cuando necesitamos convertir una lista de objetos a otra lista de objetos con diferentes tipos.
Ejemplo 1: Convertir una lista de enteros a una lista de cadenas
En este ejemplo, se utiliza ConvertAll()
para convertir una lista de enteros en una lista de cadenas. Primero, creamos una lista de enteros y luego utilizamos ConvertAll()
con un delegado que convierte cada entero en una cadena.
List<int> numeros = new List<int>() { 1, 2, 3 };
List<string> cadenas = numeros.ConvertAll(n => n.ToString());
El resultado será una lista de cadenas que contiene las representaciones en cadena de los enteros originales: "1", "2", "3"
.
Ejemplo 2: Convertir una lista de cadenas a una lista de caracteres
En este ejemplo, se utiliza ConvertAll()
para convertir una lista de cadenas en una lista de caracteres. Primero, creamos una lista de cadenas y luego utilizamos ConvertAll()
con un delegado que convierte cada cadena en un carácter en función del primer carácter de la cadena.
List<string> cadenas = new List<string>() { "hola", "mundo", "ejemplo" };
List<char> caracteres = cadenas.ConvertAll(cadena => cadena[0]);
El resultado será una lista de caracteres que contiene el primer carácter de cada cadena original: 'h', 'm', 'e'
.
Ejemplo 3: Convertir una lista de objetos a una lista de cadenas
En este ejemplo, se utiliza ConvertAll()
para convertir una lista de objetos en una lista de cadenas. Primero, creamos una lista de objetos y luego utilizamos ConvertAll()
con un delegado que convierte cada objeto en una cadena.
List<object> objetos = new List<object>() { 1, "dos", 3 };
List<string> cadenas = objetos.ConvertAll(o => o.ToString());
El resultado será una lista de cadenas que contiene las representaciones en cadena de los objetos originales: "1", "2", "3"
.
Ejemplo 4: Convertir una lista de cadenas a una lista de enteros
En este ejemplo, se utiliza ConvertAll()
para convertir una lista de cadenas en una lista de enteros. Primero, creamos una lista de cadenas y luego utilizamos ConvertAll()
con un delegado que convierte cada cadena en un entero en función del valor numérico representado por la cadena.
List<string> cadenas = new List<string>() { "1", "2", "3" };
List<int> enteros = cadenas.ConvertAll(cadena => Convert.ToInt32(cadena));
El resultado será una lista de enteros que contiene los valores numéricos representados por las cadenas originales: { 1, 2, 3 }
.
Conclusión
Al usar ConvertAll(), los desarrolladores pueden ahorrar tiempo y esfuerzo al no tener que escribir código personalizado para cada conversión. Además, la función es fácil de usar y se puede integrar en proyectos futuros para mejorar la eficiencia y la legibilidad del código.