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); }
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);
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);
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);
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: