Más LINQ

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.

Ejercicio LINQ

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.- Alumnos que han aprobado mayores de 30 años.

2.- Alumno con la mejor nota

3.- Alumno más joven

4.- Media de nota del grupo

5.- Media de edad de los aprobados