C#: Funções de agregação LINQ
Seguindo o post anterior de LINQ sobre ordenações vamos ver algumas funções de agregação.
Tendo como base a mesma classe e lista do exemplo anterior:
Aula
{
Id int
NomeAula string
Curso int
TempoDuracao datetime
}
List<Aula> aulas;
Primeiramente quero saber quais aulas tem o maior tempo, a que tem o menor tempo e a média de tempo de todas elas.
Para saber a de maior usarei o Max:
var max = aulas.Max(c => c.TempoDuracao);
Para saber a de menor o Min
var min = aulas.Min(c => c.TempoDuracao);
E para a média o Average
var media= aulas.Average(c => c.TempoDuracao);
Uma outra opção bem interessante é contar quantos registros existem seguinte uma regra que eu definir, por exemplo, quero saber quantas aulas tem Engenharia no nome, para isso utilizo o Count para contar e dentro dele utilizo o Contains para comparar as strings.
int total = aulas.Count(c => c.NomeAula.Contains("Engenharia"));
0 comentários:
Postar um comentário