我有一個列表list
與它類似的商品沒有MAX()適用:序列不包含任何元素
ElementA: Number=1, Version=1
ElementB: Number=1, Version=2
ElementC: Number=1, Version=3 <-
ElementD: Number=2, Version=1
ElementE: Number=2, Version=2 <-
ElementF: Number=3, Version=1 <-
,我想選擇其中有一個組中的最高Version
與同一項目的所有項目Number
。 (見箭頭上方。)
我想用這個查詢,所以我已經試過這樣:
var result = from a in list where a.Version >=
(from b in list where b.Number == a.Number && b != a select b.Version).Max() select a;
這是工作的罰款,如果每個項目組與同Number
由至少包含2個元素,否則如果內部查詢不包含任何元素,則會引發InvalidOperationException。
如何重寫查詢以獲取我想要的內容?我會感激每一個提示。 :-)
謝謝,這是完美的工作。 :D –
注意問題中的複數形式:「我想選擇組中具有最高版本的所有項目」。該解決方案僅選擇每個組中的一個項目。 – Henrik
Henrik:對,邁克爾似乎很好,但我會添加另一個處理此問題的人 – Carsten