根据LINQ / lambda中的按组分组的语句创建计数 - c#

我想做的是按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中的OrderByDecending(LINQ)等效项 - java

嗨,我是一名使用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 { …