IF оператор внутри LINQ SELECT - PullRequest
23 голосов
/ 23 июня 2009

Я пытаюсь создать условный оператор 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")
}

Столбцы обнуляются и, следовательно, типы столбцов имеют DateTime? типы данных.

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

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

Ответы [ 2 ]

50 голосов
/ 23 июня 2009
Status = e.col1.HasValue ? "This Value" : (e.col2.HasValue ? "Other Value" : null)
3 голосов
/ 23 июня 2009

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

Status = e.col1.HasValue ? e.col1.Value ?? "This Value" : e.col2.Value ?? "Other Value"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...