如何获取特定组中元素的计数?因此,在下面的查询中,我想知道每个帐户有多少已取消和有效订阅。我得到的是0或1,具体取决于他们是否至少有一个已取消或有效的订阅。
from a in Accounts
let subs = (
from s in Subscriptions.Where(s=>s.AccountId == a.Id)
group s by s.Status into bystatus
select bystatus
)
let csubs = subs.Count (s =>s.Key == "Cancelled")
let asubs = subs.Count (s => s.Key == "Active")
orderby a.Name
select new { a.Name,a.AccountNumber, a.Status, ActiveSubscriptionCount = asubs, CancelledSubscriptionCount = csubs }
答案 0 :(得分:0)
您似乎正在汇总数据每个帐户。这是你的意图吗?如果您想要所有帐户中的汇总数据,您可以执行...
var data = // your above code
int activeSubs = data.Sum(x => x.ActiveSubscriptionCount);
int cancelledSubs = data.Sum(x => x.CancelledSubscriptionCount);
......或......
var data = Subscriptions.GroupBy(s => s.Status);
var activeSubs = data.Count(s => s.Key == "Active");
var cancelledSubs = data.Count(s => s.Key == "Cancelled");