2015-03-30 133 views
-2

我已經查看了很多示例,但我似乎無法得到正確的語法。任何幫助,將不勝感激。從羣組中選擇最大項目

,我有以下多行數據:

Class Response { 
    Int Serial 
    Int CodeId 
} 

在響應項的列表,我想擁有最代碼(我想要得到的最大串行計數)序列。

int maxResponseCount = 
    responses.GroupBy(response => response.Serial) 
     .Select(serialCount => new 
      { 
       Count = serialCount.Select(response => response.Serial).Count()      
      } 
     ).Max(); 

我覺得我很近但是我得到了一個轉換錯誤。謝謝您的幫助。

+0

你想獲得計數每個'Serial'?請提供樣本數據... – 2015-03-30 20:00:38

+0

@MaciejLos是的,我想獲得每個序列的最大數量。我也更新了這個問題,並將其清除。 – 2015-03-31 12:21:47

回答

2

您在select條款中選擇了一個匿名類型,然後您試圖對其使用Max。指定喜歡你Max條款領域:

.Max(r => r.Count); 

或者你可以直接得到Max像:

int maxResponseCount = 
    responses.GroupBy(response => response.Serial) 
      .Max(serialCount => 
        serialCount.Select(response => response.Serial).Count()); 
+0

我用你的第二個建議,它很好用。謝謝你的幫助! – 2015-03-31 12:25:26