gpt4 book ai didi

c# - Linq 中的三元运算符

转载 作者:行者123 更新时间:2023-11-30 13:22:06 25 4
gpt4 key购买 nike

var result = from payroll in currentMonthPayroll
select new SalaryDifference
{
PreviousMonthSalary = previousMonthPayroll.Where(t => t.EmployeeId == payroll.EmployeeId).FirstOrDefault() == null ?
default(decimal) : previousMonthPayroll.Where(t => t.EmployeeId == payroll.EmployeeId).FirstOrDefault().Salary,
};

有没有办法不重复 previousMonthPayroll.Where(t => t.EmployeeId == payroll.EmployeeId).FirstOrDefault() 逻辑来选择 Salary 值?

我试过:

previousMonthPayroll.Where(t => t.EmployeeId == payroll.EmployeeId)
.FirstOrDefault().Salary ?? default(decimal);

但是,如果 previousMonthPayroll.Where(t => t.EmployeeId == payroll.EmployeeId).FirstOrDefault() 为空,它会抛出异常。

最佳答案

您可以使用 Enumerable.DefaultIfEmpty

previousMonthPayroll.Where(t => t.EmployeeId == payroll.EmployeeId)
.DefaultIfEmpty(yourDefaultObject)
.First();

其中 yourDefaultObject 是一个默认薪水为 default(decimal) 的对象。

关于c# - Linq 中的三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com