2013-09-02 3 views

ответ

9

Вы можете комбинировать условия с помощью обычных логических операторов.

Ваше решение отсутствует == во второй части условия:

.Where(p => (p.Disabled == false || p.Disabled == null)); 
//     Here --------------------^ 

Вы можете упростить это далее, потому что проверка на обнуляемого bool быть false или null эквивалентно проверке не будучи true :

.Where(p => p.Disabled != true); 
+0

.Where (p => (p.Disabled == null? False: p.Disabled) == false); Я нашел решение для моего решения, но да, вы правы. –

+0

@JohnTurner C# имеет лучший оператор: '(p.Disabled ?? false)' такой же, как '(p.Disabled == null? False: p.Disabled)'. – dasblinkenlight

+0

. Где (p => p.Disabled! = True); Это не работает, поскольку я думаю, что компилятор преобразует «! = True» в «false», и он не возвращает нулевые строки. –

Смежные вопросы