2009-10-05 93 views
3

我知道如何在C#中做到這一點,但我的開發團隊不使用C#記錄...LINQ VB如何選擇具有最大日期(最高日)

這裏是在C#中的答案: How to select only the records with the highest date in LINQ

如何在VB中做到這一點?從本質上講,如果我知道如何在VB中編寫lambda表達式,我將被設置,但是我找到的材料沒有幫助。

我還需要知道爲什麼Into標識符(即「g」)總是試圖將每一個我動過線時間的函數,導致此錯誤:

http://img19.imageshack.us/i/errno.png/

回答

8

下面是VB分組的例子from MSDN

Dim query = From p In db.Products _ 
      Group p By p.CategoryID Into g = Group _ 
      Select CategoryID, MaxPrice = g.Max(Function(p) p.UnitPrice) 

如果省略「=集團」,它會考慮G作爲福nction。 希望這有助於。

+0

是的,我認爲就是這樣!爆炸VB語法... 謝謝! – Watki02 2009-10-09 19:51:17

7
Dim q = From n In table _ 
     Group n By n.AccountId Into g _ 
     Select g.OrderByDescending(Function(t) t.Date).First() 
+0

當我把它放到我的代碼中時,預編譯器(我認爲)在我離開該行後立即將「g」變成「g()」,從而引發錯誤。它認爲g需要是一個功能? – Watki02 2009-10-05 17:23:22

+0

此代碼不起作用。 「g」不是可接受的「組名」 – Watki02 2009-10-05 17:39:49

+0

忘了下劃線... – 2009-10-05 17:58:29