2014-02-14 33 views
0

您好我有CalendarData列表對象的分組過濾列表中的第一個對象,我正在與最大EventValue對象組合後按小時對象名單。只得到一個從使用LINQ

的問題是,當我在同一時間範圍內以相同的最大EventValue 2 CalandarData我得到兩個,我只有一個第一。

我不知道我可以在這個語法中應用.First()擴展方法。任何好主意感謝

List<CalendarData> listData = 
    filteredlistCalendarData.GroupBy(element => element.StartTime.Hour) 
          .SelectMany(
           group => group.Where(element => element.EventValue == group.Max(obj => obj.EventValue)) 
               .Take(1)) 
          .ToList(); 
+0

@MarcinJuraszek嗨馬爾辛 - 我再次測試你的答案,它正常工作我錯過了括號,當我添加它時,我稍微修改了制動代碼。如果希望可以添加解決方案,以便其他人可以訪問它。 – Devsined

回答

0

使用OrderByDescendingFirstOrDefault

       group => group.OrderByDescending(e => e.EventValue) 
              .FirstOrDefault() 

要使其工作代替SelectMany電話與Select

filteredlistCalendarData.GroupBy(element => element.StartTime.Hour) 
         .Select(
          group => group.OrderByDescending(e => e.EventValue) 
              .FirstOrDefault()) 
         .ToList(); 
相關問題