我有一个数据库表,其中包含每个已发送的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] 删除。
我来说两句