Фильтрация списка объектов по дате и времени с единственным идентификатором orderId в лямбде - PullRequest
0 голосов
/ 26 февраля 2019

У меня Queryable объекта

IQueryable<Orders> orders = Repository.GetOrders();

Теперь у меня есть список заказов с некоторыми общими orderId, и мне нужно выбрать только уникальные orderIds с последнимиdate в запрашиваемых объектах

Queryable<Orders> ordersWithLatestDate = orders.Where(?) <= (нужен лямбда-запрос здесь) </p>

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете сгруппировать заказы по Id, а затем спроецировать каждую группу на столбец даты:

var ordersWithLatestDate = orders.GroupBy(x => x.Id)
                            .Select( g => new 
                                { 
                                    Orderid = g.Key, 
                                    OrderDateTime = g.OrderByDescending(x => x.OrderDateTime)
                                                     .Select(y => y.OrderDateTime)
                                                     .First()
                                });

РЕДАКТИРОВАТЬ:

Это также будет работать с IQuerable:

var ordersWithLatestDate = orders.GroupBy(x => x.Id)
                        .Select( g => 
                                g.OrderByDescending(x => x.OrderDateTime)
                                                 .Select(y => y.OrderDateTime)
                                                 .First()
                               );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...