我有2个收藏品。包含每个jobgrade(Dictionary<string, double>
)工资的字典和包含规则的对象列表(List<jobgradeRule>
)
我想迭代这两个列表并根据规则计算一个值
规则可以有*
作为工作等级,这意味着工资字典中的所有工作等级都应该受到影响。
我有这个
foreach (var item in salariesPerJobGrade)
foreach (var ritem in attr)
{
if (item.JOB_GRADE_CD == ritem.JOB_GRADE_CD || ritem.JOB_GRADE_CD == "*")
attrAmount += item.Value * ritem.RULE_VALUE;
}
这可以在LINQ语句中完成吗?
答案 0 :(得分:1)
这样的事情应该有效:
ToList
它可以节省您使用@TJF建议的{{1}}调用重新分配字典。
答案 1 :(得分:0)
我没有运行代码,但这应该让你接近:
salariesPerJobGrade.ToList().ForEach(x => attrAmount += attr.Where(y => *check your rule here*).Sum(y => x.Value * y.RULE_VALUE));