2015-03-20 4 views
1

Righ теперь у меня есть это, что работает, но его уродливым и долго:Как проверить, является ли nullable boolean недействительным?

 var details = dc.SunriseShipment 
      .Where(it => (it.isDeleted == null || it.isDeleted == false)); 

Есть ли лучший способ сделать это? Я попробовал «it.isDeleted! = True» и «it.isDeleted ?? false == false», но они не работают.

+5

«они не работают» не говорит нам что вы наблюдали в сравнении с тем, что вы ожидали ... –

+0

@ Jon Skeet: Строка не изменяется –

ответ

3

Попробуйте это:

.Where(it => !(it.isDeleted ?? false)); 
0
.Where(it => it.isDeleted == (bool?)false); 
+0

Ничего себе, что редактирование было быстрым .... –

+0

9 секунд, неплохо :) –

+0

Действительно .. I собирался отредактировать, когда увидел, что кто-то уже сделал ... –

0

Существует метод GetValueOrDefault, который возвращает значение по умолчанию, если значение равно нулю:

var details = dc.SunriseShipment 
.Where(it => !it.isDeleted.GetValueOrDefault(false));