C#: Limitando retorno de registros LINQ
Seguindo com o LINQ vamos ver hoje como limitar o número de registros.
Caso não tenha visto os posts anteriores sugiro que dê uma conferida, neles falamos de Ordenação e 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;
Imagine que quero saber quais são as 5 aulas com maior tempo de duração, primeiramente tenho que ordenar pelo tempo de duração, no caso como quero as de maior tempo a ordenação é descendente (do maior para o menor) e utilizo o método Take passando 5 como parâmetro.
var cursos = db.Cursos.OrderByDescending(c => c.TempoDuracao).Take(5);
Ou caso eu queira apenas a de maior tempo de duração, mas quero também me certificar de que caso eu não tenha nenhuma aula cadastrada no curso não me retorne um erro, uso o método FirstOrDefault. E indico sempre usá-lo ao invés do First como garantia, por mais que saiba que a lista tenha valores.
var curso = db.Cursos.OrderByDescending(c => c.TempoDuracao).FirstOrDefault();
0 comentários:
Postar um comentário