Выберите все виды занятости, а затем конкретного сотрудника - PullRequest
2 голосов
/ 14 марта 2019

Это домашнее задание, поэтому кто-то может подсказать мне (вместо ответа), как объединить эти два запроса LINQ.Это вопрос

Обновите PayrollSytem с помощью LINQ, чтобы отобразить Список в список анонимных объектов, в котором каждый объект содержит имя и заработок сотрудника.При обнаружении BasePlusCommissionEmployee увеличьте базовый оклад на 10% без изменения исходного объекта BasePlusCommissionEmployee.Показать имена и заработок.

пока у меня есть

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-диаграмма класса UML Diagram

Так что запросы по отдельности работают нормально, ноЕсть ли способ сделать это одним запросом.Если потребуется какой-либо другой код, я предоставлю его.

1 Ответ

1 голос
/ 14 марта 2019

Вы можете просто проверить, является ли сотрудник базовым и комиссионным, используя троичного оператора внутри анонимного класса.

employees.Select(x => new { 
    FirstName = x.FirstName,
    LastName = x.LastName,
    Salary = x is BasePlusCommissionEmployee ? (x as BasePlusCommissionEmployee).BaseSalary * 1.1M : x.Earnings()
}).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...