在LINQ中使用GroupBy

汤匙

我有一个数据库表,其中包含每个已发送的SMS客户的条目。看起来像这样:

CustomerId  SentBy  SentTo SentDate

我想创建一个报告,该报告使用LINQ(最好是流利的语法)列出每个客户发送的SMS消息的总量

var smses = smsTable.GroupBy(x => x.CustomerId);

我不太确定如何遍历结果。我想要以下输出:

CustomerId  SmsCount
----------------------
1234        1756
100         333

我将不胜感激!

苏吉思·卡里维利

根据MSDN,GroupBy返回,IEnumerable<IGrouping<TKey, TElement>>并且每个IGrouping对象都包含TElement类型的对象和一个键的集合。

这意味着您可以获得的分组项目的值将等于,Key并且每个Key将与一个集合相关联。在您的情况下,您必须获取密钥以及每个组中的项目数。为此,可以使用以下代码。

var smses = smsTable.GroupBy(x => x.CustomerId)
                    .Select(y => new 
                                 { 
                                    CustomerId = y.Key,
                                    smsCount = y.Count()
                                 });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章