从GroupBy Items中选择Max

时间:2015-03-30 19:51:22

标签: c# .net linq

我查看了许多例子,但我似乎无法正确理解语法。任何帮助将不胜感激。

我有很多行的以下数据:

Class Response {
    Int Serial
    Int CodeId
}

在响应项列表中,我想获得代码最多的序列(我想获得最大序列号)。

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

我想我已经关闭,但是我收到了投射错误。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您在select子句中选择了匿名类型,然后尝试在其上使用Max。在Max子句中指定字段,如:

.Max(r => r.Count);

或者你可以直接获得Max

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