我想要做的是将大量记录组合在一起Employer.然后,我想返回一个整数变量,该变量只有至少具有30记录的那些组的计数.
IE我有100订阅者Employer A,20at Employer B和30at Employer C.
我把记录分组在一起然后提出来
Employer A - 100
Employer B - 20
Employer C - 30
Run Code Online (Sandbox Code Playgroud)
我想返回标量变量2.
这是我目前拥有的:
var Step1 =
(from y in recordsActivstJoin
where y.q.Market.Contains(market) && y.x.ActivistCodeID.Equals(activismCode)
select new {y}).ToList();
//this groups my previous query
var Step2 = (from z in Step1 group z by z.y.q.Employer into f select new {f}).ToList();
Run Code Online (Sandbox Code Playgroud)
当我观察当地人时,我可以看到它实际上从步骤1开始分组,其中步骤2中有34行到17行.现在,我想要缩小到只有组> = 30的那些.
有什么建议?
我不是盲目地写LINQ的最好的,但我相当肯定你正在寻找一些非常接近以下的东西:
var Step1 =
(from y in recordsActivstJoin
where y.q.Market.Contains(market) && y.x.ActivistCodeID.Equals(activismCode)
select new {y}).ToList();
//this groups my previous query
var Step2 = (from i in Step1 group i by i.y.q.Employer into groupedEmployees
select new
{
EmployeeCount = groupedEmployees.Count()
}).Where(n=>n.EmployeeCount >= 30).Count();
Run Code Online (Sandbox Code Playgroud)
帕特里克指出,这可以缩短为:
var Step2 = Step1.GroupBy(i => i.y.q.Employer).Count(g => g.Count() >= 30);
Run Code Online (Sandbox Code Playgroud)
Step2应该2在你的例子中.希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
885 次 |
| 最近记录: |