Как получить последние 5 записей, используя метод LINQ или выражение запроса в C # - PullRequest
19 голосов
/ 16 декабря 2011

На моей домашней странице я хочу показать недавно добавленные продукты. Я добавил ChildAction в свой контроллер, но я не могу понять, какой запрос Linq я должен выполнить, чтобы получить последние пять записей.

Ответы [ 6 ]

47 голосов
/ 16 декабря 2011

LINQ

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

Лямбда

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

Что бы вы ни предпочли.

32 голосов
/ 16 декабря 2011
.Skip(count - 5);

или

.Reverse().Take(5).Reverse()
16 голосов
/ 16 декабря 2011

Самый простой подход - отменить заказ (например, использовать 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);
8 голосов
/ 22 июля 2014

Установите пакет MoreLINQ, затем:

CollectionName.TakeLast(5);
1 голос
/ 12 декабря 2013

Это для выбора последних 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;
0 голосов
/ 11 апреля 2013

Код:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...