2014-09-21 60 views
0

我是LINQ的新手。LINQ:Groupby和Last

我有如下表:

ID Field1 Field2  Field3 
1 aaaa 20/01/2014 10 
2 aaaa 21/01/2014 3 
3 aaaa 25/01/2014 10 
4 bbbb 01/01/2014 90 
5 bbbb 03/01/2014 1 
6 bbbb 31/01/2014 5 

我想按字段1,抓住每个组的最后一行。 SQL查询相当于是这样的:

SELECT Field1, Last(Field2) AS LastOfField2, Last(Field3) AS LastOfField3 
FROM Table1 
GROUP BY Field1 

这可怎么LINQ的实现?

回答

1
var result = from p in Table1 
group p by p.Field1 into grp 
select grp.OrderByDescending(g=>g.Field2).First(); 
+0

太棒了!这工作!我有一个新的问题:给定2个记录的结果集(一个用于aaaa,另一个用于bbbb)。我只想拍摄具有最低Field3的记录。 (我必须在StackOverflow中发布一个新问题吗?) – danieljaguiar 2014-09-21 14:15:03