На моей домашней странице я хочу показать недавно добавленные продукты. Я добавил ChildAction к моему контроллеру, но я не могу понять, какой запрос Linq я должен выполнить, чтобы получить последние пять записей.
Как получить последние 5 записей, используя метод LINQ или выражение запроса в С#
Ответ 1
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);
Что вы предпочитаете.
Ответ 2
.Skip(count - 5).take(5);
или
.Reverse().Take(5).Reverse()
Ответ 3
Самый простой способ - отменить ваше упорядочение (например, использовать 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);
Ответ 4
Установите пакет MoreLINQ, затем:
CollectionName.TakeLast(5);
Ответ 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;
Ответ 6
код:
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