it-swarm-pt.tech

Como recuperar os últimos 5 registros usando o método LINQ ou a expressão de consulta em C #

Na minha página inicial, quero mostrar os produtos adicionados recentemente. Eu adicionei um ChildAction ao meu controlador, mas não consigo entender qual consulta do Linq devo executar para buscar os últimos cinco registros.

25
Pankaj Upadhyay

LINQ

var lastFiveProducts = (from p in products 
                        orderby p.ProductDate descending
                        select p).Take(5);

Lambda

var lastFiveProducts = products.OrderByDescending(p => p.ProductDate).Take(5);

Qual você preferir.

55
James
.Skip(count - 5);

ou

.Reverse().Take(5).Reverse()
35
Not loved

A abordagem mais simples é reverter sua ordem (por exemplo, use orderby foo descending) E, em seguida, use Take() . Por exemplo:

var recentProducts = products.OrderByDescending(x => x.CreationDate)
                             .Take(5);

ou no formulário de expressão de consulta (que eu não usaria para consultas simples que são mais facilmente expressas no formulário acima):

var recentProducts = (from product in products
                      orderby product.CreationDate descending
                      select product).Take(5);
16
Jon Skeet

Instale o pacote MoreLINQ e, em seguida:

CollectionName.TakeLast(5);
8
usefulBee

Isto é para selecionar os últimos 5 com crescente

var query = from tbl in  (from tbl1 in object.Table orderby
tbl1.Column descending select tbl1).Take(5)  orderby tbl.Column
ascending  select tbl;
1
Jai

Código:

INT[]number = new int[] {3,6,8,2,3,7,0,2,5}

var result= (from r in number select r).reverse().take(5);

resultado: 5 2 0 7 3

0
user956094