La programación funcional es cada vez más popular y eso se ve reflejado en como varios de los lenguajes más populares del mundo han adoptado varios de sus conceptos y formas de trabajar.
En el artículo de hoy les mostraré como usar métodos funcionales que ya vienen con el lenguaje de programación C# para manipular listas, verán que hay muchas similitudes entre estos métodos y los métodos que nos podemos encontrar en javascript para la manipulación de arrays.
Comenzaremos con el método que nos permitira recorrer nuestras listas el método foreach()
:
1 List<int> numbers = new List<int>(); 2 numbers.Add(1); 3 numbers.Add(2); 4 numbers.Add(3); 5 6 numbers.ForEach(number => Console.Write(number)); 7 /** 8 * Output : 123 9 * */ 10
Otra de las acciones más comunes que vamos a realizar sobre nuestras listas es filtrar los elementos de acuerdo a algún criterio y para eso tenemos el método Where()
1List<int> numbers = new List<int>(); 2numbers.Add(1); 3numbers.Add(2); 4numbers.Add(3); 5numbers.Add(4); 6numbers.Add(5); 7 8List<int> filteredNumbers = numbers.Where(number => number > 3).ToList(); 9filteredNumbers.ForEach(number => Console.WriteLine(number)); 10 11/** 12* Output : 4 13 5 14*/ 15
Lo que estamos haciendo es crear la lista y agregarle 5 numeros, después creamos una lista, y el valor de esta lista va a ser la lista anterior pero filtrada con sólo los numeros mayores a 3, y como el método Where()
devuelve un objeto de tipo Inumerable utilizamos el método ToList()
para volverlo una lista de nuevo.
Ahora vamos a encontrar un elemento de la lista con el método Find()
1List<string> words = new List<string>(); 2words.Add("Alejandro"); 3words.Add("Ingrid"); 4words.Add("EDteam"); 5 6string education = words.Find(word => word.Contains("team")); 7Console.Write(education); 8/** 9* Output : EDteam 10* */ 11
Y por último te mostrare un método para verificar si en una lista se cumple alguna condición dada, esto lo realizaremos con el metodo Exists()
:
1List<string> words = new List<string>(); 2words.Add("Alejandro"); 3words.Add("Ingrid"); 4words.Add("EDteam"); 5 6Boolean trueValue = words.Exists(word => word.Contains("Ingrid")); 7Boolean falseValue = words.Exists(word => word.Contains("Bolivia")); 8 9Console.WriteLine(trueValue); 10Console.WriteLine(falseValue); 11 12/** 13* Output : True 14* False 15* */ 16
Este método lo que hace es recorrer la lista y verificar si existe aunque sea un solo elemento que cumpla la condición que se le indica, en este caso que exista alguna palabra que contenga Ingrid
de ser asi devulve true y en caso contrario false.
Espero que te haya gustado este artículo, hasta la próxima.