如何使用c#LINQ在分组结果中选择所需的行

Mei*_*idi 3 c# linq

我有这样的Customer表

ID EndDate 
1  2/11/2010
1  3/14/2011
2  5/3/2011
2  12/1/2011
3  4/5/2010
Run Code Online (Sandbox Code Playgroud)

我想为每个ID组取最大日期的行,结果如下:

ID EndDate
1  3/14/2011
2  12/1/2011
3  4/5/2010
Run Code Online (Sandbox Code Playgroud)

如何在c#中使用一个流畅的语法(没有循环或第二个语句)来获得结果?

Customers.GroupBy( c => c.ID ).....//How do I proceed?
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 5

您可以使用:

var results = Customers.GroupBy(c => c.ID)
                       .Select(
                          g => g.OrderByDescending(c => c.EndDate).First() );
Run Code Online (Sandbox Code Playgroud)