我有一个以下类,我正在尝试使用我查询的一堆数据创建一个列表:
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() 或类似的东西的情况吗?我有点迷失在这里。