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

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

<code>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")
}
</code>

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

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

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

Ответы на вопрос(2)

Решение Вопроса
Status = e.col1.HasValue ? "This Value" : (e.col2.HasValue ? "Other Value" : null)
 26 нояб. 2012 г., 22:35
Вы, красавчик, я получал исключение NullReferenceException на Windows Phone при возврате Contact.Companies ... пытался получить Contact.Companies.FirstOrDefault (). CompanyName в запросе LINQ подвергался бомбардировке ... следующее прекрасно сработало! CompanyName = (c.Companies.Count () & gt; 0)? c.Companies.FirstOrDefault (). CompanyName: & quot; & quot;
 kntcnrg23 июн. 2009 г., 04:16
Отлично. Благодарю.

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

Status = e.col1.HasValue ? e.col1.Value ?? "This Value" : e.col2.Value ?? "Other Value"
 23 июн. 2009 г., 02:57
да ты прав
 23 июн. 2009 г., 02:44
На самом деле это делает обратное тому, что указывает OP.

Ваш ответ на вопрос