我有一个GroupBy,我将所有元素分组。我可以看到LinqPad中的项目,但无法找到计算方法。
这是我到目前为止所做的:
SurveyResponses.Where( q => q.QuestionId == 4)
.GroupBy(q => q.AnswerNumeric)
.Where( g => g.Key == 1)
在Linq Pad中我可以看到此查询中有4个项目。如果我做Count,它会返回1.
我已经尝试过,ToList().Count
,Select(x => x).Count
等等。
要清楚,我有一个IGrouping,需要从中得到计数。
答案 0 :(得分:2)
在您发布的代码中,您没有IGrouping<int, Response>
,而是IEnumerable<IGrouping<int, Response>>
。您正在计算满足Where
谓词的分组数。
使用Single
代替Where
来获得您期望的结果:
int count = SurveyResponses
.Where(q => q.QuestionId == 4)
.GroupBy(q => q.AnswerNumeric)
.Single(g => g.Key == 1)
.Count();