- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个下面的类,我试图用我查询过的一堆数据创建一个列表:
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,因为我们对 Agency“CCR”下的“Call”条目进行平均,即 3 天和 5 天的工作时间。 Time AuditRule 条目的 AvgDaysWorked 为 2,因为只有一个条目。
可以请具有 LINQ 忍者技能的人帮助我将这些数据整理成一个机构列表和每个机构的规则(以及该规则/机构组合的平均工作天数)吗?
这对我来说已经足够复杂了,我什至无法将那个匿名对象放在一起,而且我真的很难编写这个查询来创建这个 Agencies/AuditRules 列表。
在这种情况下我会使用 SelectMany() 或类似的东西吗?我有点迷路了。
最佳答案
我希望这能完成工作。
// GetAnonymousCollection() is hard to define... ;)
var anonymous = GetAnonymousCollection();
IEnumerable<Agency> result = anonymous
.GroupBy(a => a.AgencyID)
.Select(ag => new Agency()
{
AgencyID = ag.Key,
AgencyName = ag.First().AgencyName,
Rules = ag
.GroupBy(agr => agr.AudiRuleID)
.Select(agrg => new AuditRule()
{
AuditRuleID = agrg.Key,
AuditRuleName = agrg.First().AuditRuleName,
AvgDaysWorked = (Int32)agrg.Average(agrgr => agrgr.DaysWorked)
})
});
顺便说一下,考虑使用小数或 float 表示平均时间。
关于c# - 如何使用 LINQ 将这些数据组织成我想要的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075992/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!