C#Group by one property选择组中最新的一个

时间:2017-08-24 07:11:31

标签: c# linq collections

我有一个具有以下结构的对象列表

public class Order
{
    public Guid OrderId { get;set;}
    public DateTime OrderDate {get;set;}
    public Guid CustomerId { get;set;}
}

从列表中我必须为每个客户选择最新订单。我知道我需要使用CustomerId的group,但是如何从组中选择最新的订单呢? 感谢

1 个答案:

答案 0 :(得分:3)

你可能正在寻找类似的东西

orders.GroupBy(o => o.CustomerId).Select(g => g.OrderByDescending(o => o.OrderDate).First());

因此,在每个组中,您将按订单日期排序,然后选择第一个。