web-dev-qa-db-fra.com

Comment récupérer les 5 derniers enregistrements à l'aide de la méthode LINQ ou de l'expression de requête en C #

Sur ma page d'accueil, je souhaite afficher les produits récemment ajoutés. J'ai ajouté une ChildAction à mon contrôleur mais je n'arrive pas à comprendre quelle requête Linq dois-je exécuter pour récupérer les cinq derniers enregistrements.

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);

Celui que tu préfères.

55
James
.Skip(count - 5);

ou

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

L'approche la plus simple consiste à inverser votre commande (par exemple, utilisez orderby foo descending), Puis utilisez Take() . Par exemple:

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

ou sous forme d'expression de requête (que je n'utiliserais pas pour des requêtes simples qui sont plus facilement exprimées dans le formulaire ci-dessus):

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

Installez MoreLINQ Package, puis:

CollectionName.TakeLast(5);
8
usefulBee

C'est pour sélectionner les 5 derniers avec croissant

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

Code:

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

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

résultat: 5 2 0 7 3

0
user956094