2016-12-07 58 views
0

讓說我有這個表在我的數據庫的LinQ:每個disctinct其他元素返回最後或更高價值

Region | ApplicationDate | Value 
-------|-----------------|------ 
US  | 2016-12-01  | 14 
UK  | 2016-12-01  | 20 
US  | 2016-11-15  | 12 
UK  | 2016-10-01  | 25 
AU  | 2016-09-01  | 150 
AU  | 2016-08-01  | 100 
US  | 2016-08-01  | 11 
US  | 2016-02-01  | 10 
UK  | 2016-01-01  | 30 

什麼是查詢(LINQ),將返回的最後一個值對每個區域

US  | 2016-12-01  | 14 
UK  | 2016-12-01  | 20 
AU  | 2016-09-01  | 150 
+0

你嘗試了什麼呢?它看起來像簡單的「Order By」和「Group By」。 –

+0

以'GroupBy'開頭。當再次陷入困境時 - 來修改你的問題以包含你的最佳嘗試。 – zerkms

+0

最後一個值是基於什麼? – DarkKnight

回答

1

當你需要在每個類別中的最後一個項目,爲使LINQ查詢的策略如下:

  • 集團按類別 - 在你的情況,這是Region
  • 排序每組裏面 - 你需要按日期訂購,降
  • 就拿你需要項目 - 使用FirstSelect

查詢如下所示:

var res = data 
    .GroupBy(item => item.Region) 
    .ToDictionary(
     g => g.Key 
    , g => g.OrderByDescending(item => item.Applicationdate).First().Value 
    ); 
相關問題