Using GroupBy in LINQ
本问题已经有最佳答案,请猛点这里访问。
我有一个数据库表,其中包含客户发送的每个短信息的条目。看起来像这样:
1 | CustomerId SentBy SentTo SentDate |
我想使用LINQ(最好是流利的语法)创建一个报告,列出每个客户发送的短信总数。
1 | var smses = smsTable.GroupBy(x => x.CustomerId); |
不过,我不太确定如何循环遍历结果。我想要以下输出:
1 2 3 4 | CustomerId SmsCount ---------------------- 1234 1756 100 333 |
我非常感谢你的帮助!
According to MSDN, the GroupBy returns
IEnumerable and each IGrouping object contains a>
collection of objects of type TElement and a key.
这意味着您可以得到分组项的值将等于
1 2 3 4 5 6 | var smses = smsTable.GroupBy(x => x.CustomerId) .Select(y => new { CustomerId = y.Key, smsCount = y.Count() }); |
尝试这样做:
1 2 3 4 5 6 | var smses = smsTable.GroupBy(x => x.CustomerId).Select(group => new { CustomerId = group.Key, SmsCount = group.Count() }); |
希望它有帮助!