如何在C#中使用LINQ方法或查询表达式检索最后5条记录

在我的主页上,我想展示最近添加的产品。 我已经向我的控制器添加了一个ChildAction,但我无法理解我应该运行哪些Linq查询来获取最后五个记录。

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

你喜欢哪个。

 .Skip(count - 5); 

要么

 .Reverse().Take(5).Reverse() 

最简单的方法是颠倒你的顺序(例如使用orderby foo descending ),然后使用Take() 。 例如:

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

或者在查询表达式表单中(我不会用于在上面的表单中更容易表达的简单查询):

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

安装MoreLINQ Package,然后:

 CollectionName.TakeLast(5); 

这是用于以升序选择最后5个

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

码:

 INT[]number = new int[] {3,6,8,2,3,7,0,2,5} var result= (from r in number select r).reverse().take(5); 

结果:5 2 0 7 3