2014-09-21 57 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