2015-04-17 68 views
3

我有一個LINQ查詢爲:LINQ查詢返回嵌套列表的唯一項目

  var leaveDetails = (from l in leaveList 
      group l by new {l.LeaveDateStart.Year, l.LeaveType} 
      into yearGroup 
      select new 
      { 
       yearGroup.Key.Year, 
       yearGroup.Key.LeaveType, 
       LeaveTaken = yearGroup.Sum(l => EntityFunctions.DiffDays(l.LeaveDateStart, l.LeaveDateEnd)) 

      }).ToList(); 

有了結果如下圖所示:

Image showing query results 不過,我想按不同的一年。因此,對於每個獨特的一年,我都有一個假期類型列表和休假天數。

我曾嘗試在JavaScript的前端做它,但它看起來凌亂。有沒有一種方法可以在C#或linq查詢中完成。謝謝

+0

只是不'l.LeaveType'分組,和你得到特殊的一年 – Grundy

+0

集團的結果,你必須通過今年的榜單,並你完成了。 – Maarten

+0

@Martarten聽起來可行。你介意發佈作爲答案 – mboko

回答

1

您有一個按年份和離開類型分組的當前結果。您可以簡單地將當前結果按年分組,然後選擇離職類型並將其作爲每組價值。

這樣的(注:沒有測試過):

var leaveDetailsPerYear = (from l in leaveDetails 
          group l by l.Year 
          into yearGroup 
          select new { 
           Year = yearGroup.Key, 
           Data = yearGroup.ToList() 
          } 
         ) 
          .ToList(); 
+0

謝謝這工作得很好,一個小的編輯。選擇語句中的'Year = yearGroup.Key'。 – mboko

+0

是的,我現在看到它。糾正。 – Maarten