Вы можете сгруппировать заказы по 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()
);