为了账号安全,请及时绑定邮箱和手机立即绑定

选择所有类型的雇员,然后选择特定的雇员

选择所有类型的雇员,然后选择特定的雇员

C#
蝴蝶不菲 2022-10-23 16:21:59
这是一种家庭作业,所以有人可以指导我(而不是回答)如何组合这两个 LINQ 查询。这是问题通过使用 LINQ 将 List 映射到一个匿名对象列表来更新 PayrollSytem,其中每个对象都包含一个员工的姓名和收入。当遇到 BasePlusCommissionEmployee 时,在不修改原始 BasePlusCommissionEmployee 对象的情况下,将基本工资提高 10%。显示姓名和收入。到目前为止我有这个var model1 = employees.OfType<BasePlusCommissionEmployee>().Select(x => new    {        x.FirstName,        x.LastName,        Increased_salary=x.BaseSalary*=1.10M    });var model = employees.Select(x => new    {        x.FirstName,        x.LastName,        earning = x.Earnings()    });foreach (var item in model)    {        Console.WriteLine(item);    }类的UML图是所以查询单独工作正常,但有什么方法可以使它成为一个查询。如果需要任何其他代码,我会提供。
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以使用匿名类中的三元运算符简单地检查员工是否是基础加佣金员工。


employees.Select(x => new { 

    FirstName = x.FirstName,

    LastName = x.LastName,

    Salary = x is BasePlusCommissionEmployee ? (x as BasePlusCommissionEmployee).BaseSalary * 1.1M : x.Earnings()

}).ToList();


查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信