我想做的是按Employer
将大量记录分组在一起。然后,我想返回一个整数变量,该变量将仅具有至少30
个记录的那些组的计数。
即我在100
上有Employer A
个订户,在20
上有Employer B
个,在30
上有Employer C
个。
我将记录分组在一起,并提出
Employer A - 100
Employer B - 20
Employer C - 30
我想返回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();
当我观察本地人时,我可以看到它实际上是从步骤1向下分组的,该步骤从第34行减少到步骤2的17。
有什么建议?
参考方案
我不是最擅长盲目编写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();
帕特里克指出,这可以简化为:
var Step2 = Step1.GroupBy(i => i.y.q.Employer).Count(g => g.Count() >= 30);
在您的示例中,Step2
应该为2
。希望这可以帮助!
嗨,我是一名使用Java的C#开发人员。问题很简单:我如何才能将下面的c#代码写入Java并仍能正常工作:myCoffeeList.OrderByDescending(x => x.Name?.ToLower()?.Trim() == sender.Text.ToLower()?.Trim())); 我的sender.Text基本上是一个文本框。文本的…
LINQ RemoveAll代替循环 - c#我有两个for循环,用于从列表中删除项目。我正在为这些循环寻找等效的LINQ语句for (Int32 i = points.Count - 1; i >= 0; i--) { for (Int32 j = touchingRects.Count - 1; j >= 0; j--) { if (touchingRects[j].HitTest(po…
Linq Any()的哪种使用效率更高? - c#我有一个Linq查询,如下所示:return this._alarmObjectAlarmViolationList .Where(row => row.ObjectId == subId) .Where(row => row.AlarmInternalId == "WECO #1 (StdDev > UCL)") .W…
LINQ to SQL中的“无法识别的表达式节点数组索引linq”异常 - c#这是我的LINQ,其中我将DateTime类型的字段与当前日期进行了比较- var srs = (from s in dcDistrict.ScheduledReportStatus where s.ReportConfigId.Equals(ConfigId) && s.Status.HasValue && s.Status…
Lambda Java中的此参考 - java我想将anonymous class转换为lambda expression。但是这个匿名类我使用this关键字。例如,我写了这个简单的Observer/Observable模式:import java.util.ArrayList; import java.util.Collection; public static class Observable { …