Подтвердить что ты не робот

Оператор IF внутри LINQ SELECT

Я пытаюсь создать условный оператор IF внутри "select new", который проверяет значения двух полей, чтобы заполнить свойство.

from e in Employees
where e.EmployeeID == id
select new {
    EmployeeID = e.EmployeeID,
    EmployeeName = e.FirstName + " " + e.LastName,
    Status = (if e.col1.HasValue then "This Value" else if e.col2.HasValue then "Other Value")
}

Столбцы имеют значение NULL, поэтому типы столбцов - DateTime? типы данных.

Только один или другой столбец будет иметь значение datetime, а не оба.

Как мне это сделать???

4b9b3361

Ответ 1

Status = e.col1.HasValue ? "This Value" : (e.col2.HasValue ? "Other Value" : null)

Ответ 2

используйте нулевой оператор наложения для этого

Status = e.col1.HasValue ? e.col1.Value ?? "This Value" : e.col2.Value ?? "Other Value"