Archivo

Posts Tagged ‘Linq Enumerable’

Métodos útiles en Enumerable

noviembre 26, 2017 Deja un comentario

Enumerable es una clase en .Net que hace parte del paquete o namespace de Linq ( System.Linq) y que ofrece métodos muy útiles para el manejo de colecciones y listas, que en ciertas ocasiones dejamos pasar o no los usamos adecuadamente.

Supongamos que tenemos la siguiente lista para el ejemplo:

 List<Movie> lmovies = new List<Movie>();
 lmovies.Add(new Movie() { Tittle = "Titanic", Genre = "Drama", Year = 1998 });
 lmovies.Add(new Movie() { Tittle = "Avengers", Genre = "Action", Year = 2012 });
 lmovies.Add(new Movie() { Tittle = "Annabelle", Genre = "Terror", Year = 2014 });

Max

el método Max permite encontrar el máximo de una lista de registro de cualquier tipo numérico (decimal, float, int etc…)

 //Get the max value on the list by a numeric field
 var maxmovie = Enumerable.Max<Movie>(lmovies, c => c.Year);
 Console.WriteLine("Demo Max");
 Console.WriteLine(maxmovie); //Result 2014

Min

el método Min permite encontrar el mínimo de una lista de registro de cualquier tipo numérico (decimal, float, int etc…)

 //Get the min value on the list by a numeric field
 var minmovie = Enumerable.Min<Movie>(lmovies, c => c.Year);
 Console.WriteLine("Demo Min");
 Console.WriteLine(minmovie); //result 1988

Repeat 

Repeat nos permite crear una copia de cualquier tipo de dato que le digamos, facilitandonos el proceso de pruebas.

// create N numbers of copy of an object 
 var listmovies = Enumerable.Repeat<Movie>(new Movie() { Tittle = "Movie Example" }, 5);
 Console.WriteLine("Demo Repeat");
 
 foreach (var item in listmovies)
 {
 Console.WriteLine(item.Tittle); 
 }

 

Sum

El método Sum permite sumer todos los datos de una colección de tipo numérico

 // sum a collections of numbers on a field
 var sumMovie = Enumerable.Sum<Movie>(lmovies, c => c.Year);
 Console.WriteLine("Demo Sum");
 Console.WriteLine(sumMovie);

 

Concat

Permite funcionar o concatenar 2 listas en una sola, es una opción muy útil ya que podemos omitir hacer ciclos e insertar los datos uno a uno.

// mix 2 colecction of the same type in only one collection 
 var lstconcat = Enumerable.Concat<Movie>(lmovies, listmovies);
 Console.WriteLine("Demo Concat");

foreach (var item in lstconcat) 
 Console.WriteLine(item.Tittle);

Average

Calcula un promedio de una lista de datos numéricos

// caculate an average from a collection of numbers
 var averageMovie = Enumerable.Average<Movie>(lmovies, c => c.Year);
 Console.WriteLine("Demo Average");
 Console.WriteLine(averageMovie);

Except

Permite devolver una lista omitiendo una lista de elementos contenidos en una segunda lista

 //return a list except the elements on the exception
 var lstExcept = Enumerable.Except<Movie>(lstconcat, listmovies);
 Console.WriteLine("Demo Except");
 foreach (var item in lstExcept)
 Console.WriteLine(item.Tittle);

 

La lista completa de métodos esta en a documentación oficial de microsoft

https://msdn.microsoft.com/en-us/library/system.linq.enumerable_methods(v=vs.110).aspx

 

DEMOS:

https://github.com/Mteheran/EnumerableDemos

Anuncios