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.
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.
.Skip(count - 5);
ou
.Reverse().Take(5).Reverse()
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);
Installez MoreLINQ Package, puis:
CollectionName.TakeLast(5);
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;
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