Con la clase Alumno
class Alumno { public string Nombre { get; set; } public int Edad { get; set; } public double Nota { get; set; } public Alumno(string nombre, int edad, double nota) { Nombre = nombre; Edad = edad; Nota = nota; } public override string ToString() { return Nombre+" - "+Edad+" - "+Nota; } }
(https://github.com/juanpablofuentes/CSharp/blob/master/LINQ/LinqBasico/LinqBasico/Alumno.cs) y los siguientes datos:
List<Alumno> listaAlumnos = new List<Alumno>() { new Alumno("Eva",20,6.0), new Alumno("Ana",22,7.0), new Alumno("Rosa",22,4.0), new Alumno("Ot",20,3.0), new Alumno("Iu",30,6.8), new Alumno("Pep",32,5.9), new Alumno("Laia",30,2.3), new Alumno("Quim",32,1.7), };
Crear las consultas LINQ y mostrar los datos para obtener lo siguiente:
1.- Agrupar los alumnos por edad y mostrarlos con el formato: Edad: XX, alumnos: (nombre de los alumnos)
2.- Agrupar los alumnos por aprobado/suspendido y mostrarlos con el mismo formato de antes
3.- Agrupar los alumnos por década (los de 20, los de 30…) y mostrarlos.
Tenemos la siguiente clase:
class Descuento{ public string Nombre { get; set; } public int Decada{ get; set; } public Descuento(string nombre, int decada) { Nombre = nombre; Decada= decada; } public override string ToString() { return Nombre+" - "+Decada; } }
List<Descuento> listaDescuentos = new List<Descuento>() { new Descuento("Jovenes",20), new Descuento("Profesionales",30), new Descuento("Tercera edad",60) };
Con estos datos haced un join entre los descuentos y los alumnos y un groupjoin para que salgan todos los descuentos.