我有一个以下类,我试图创建一个包含我查询过的一堆数据的列表:
public class Agency
{
public string AgencyName { get; set; }
public int AgencyID { get; set; }
public IEnumerable<AuditRule> rules { get; set; }
}
其中“AuditRule”是:
public class AuditRule
{
public int AuditRuleID { get; set; }
public string AuditRuleName { get; set }
public int AvgDaysWorked { get; set; }
}
现在,经过相当复杂的查询后,我已经能够将数据放入一个匿名对象中,如下所示:
{ DateImported, AgencyID, AgencyName, AuditRuleName, AuditRuleID, DaysWorked }
我有数千条这种格式的记录,我正在尝试构建一个 IEnumerable<Agency
> 它本身包含每个机构的规则列表。
那么,以下面的数据为例:
{ AgencyID = 1, AgencyName = "CCR", AuditRuleName = "Call", AuditRuleID = 1, DaysWorked = 3 }
{ AgencyID = 1, AgencyName = "CCR", AuditRuleName = "Call", AuditRuleID = 1, DaysWorked = 5 }
{ AgencyID = 1, AgencyName = "CCR", AuditRuleName = "Time", AuditRuleID = 2, DaysWorked = 2 }
{ AgencyID = 2, AgencyName = "YRX", AuditRuleName = "Call", AuditRuleID = 1, DaysWorked = 3 }
{ AgencyID = 2, AgencyName = "YRX", AuditRuleName = "Acct", AuditRuleID = 3, DaysWorked = 2 }
因此,根据这些数据,我首先尝试构建一个机构列表(顶部的类别),在本例中显然是“CCR”和“YRX”。然后,对于每个机构,我希望在其 IEnumerable 中为其每条规则都有一个条目<AuditRule
> 有记录。
因此,机构“CCR”将有 2 个规则条目:“呼叫”和“时间”。 “Call”AuditRule 条目的 AvgDaysWorked 为 4,因为我们对代理机构“CCR”下的“Call”条目进行平均,即工作 3 天和 5 天。 Time AuditRule 条目的 AvgDaysWorked 为 2,因为只有一个条目。
具有一些 LINQ 忍者技能的人可以帮助我将这些数据整理成每个机构的机构和规则列表(以及该规则/机构组合的平均工作天数)吗?
对于我来说,它已经足够复杂了,甚至能够将那个匿名对象放在一起,而且我真的很难编写这个查询来创建这个机构/审计规则列表。
在这种情况下我会使用 SelectMany() 或类似的东西吗?我有点迷失在这里。