2016-12-30 13 views
-2

Как описано в названии. Я застрял, в противном случае простое использование и, xor или выражений в операторе LINQ.Категория не является таковой, если свойство не является ложным

from s in db.Items 
where <Other boolean operations> && 
     s.Category.Contains("something") && 
     s.IsReviewed == false 

Где я хочу, чтобы другие логические операции для фильтрации списка вниз, и где остаток товаров не должен быть из категории «что-то», если IsReviewed Его не является ложным.

Альтернативный способ выразить это: Я хочу, чтобы предметы любой категории отображались, кроме категории «что-то», если она не была проверена.

Ваше руководство приветствуется.

+0

чтобы уточнить, вы хотите, чтобы все отфильтрованные элементы, чтобы быть 'IsReviewed', если они не находятся в' Category.Contains («что-то») и '! IsReviewed' если они находятся в категории. Содержит ("что-то") '? Или вам не нравится состояние 'IsReviewed', если элемент отсутствует в категории? – strongbutgood

+0

Я хочу, чтобы все отфильтрованные элементы были «IsReviewed» bool agnostic (true или false), если только он не относится к категории «что-то», для них мне нужны только те, которые являются ложными. –

ответ

0

Обновленный ответ для отражения логики в соответствии с вашими комментариями.

from s in db.Items 
where <Other boolean operations> && 
     (!s.Category.Contains("something") || s.IsReviewed == false) 
+0

@Servy Вы правы. Обновленный ответ. –

+0

@ CAD.Dev Есть ли у вас какие-либо другие категории? Соответствуют ли они всем вашим другим критериям? – Servy

+0

Да, есть много других категорий. Где бы я хотел показать как рассмотренные, так и не просмотренные элементы. –

-1

Таким образом, вы хотите, чтобы все пункты, где категория не «что-то» ИЛИ IsReviewed ложно.

+3

Можете добавить это как комментарий? Вместо ответа? –

+0

@ CAD.Dev Это ответ на вопрос, а не комментарий, поэтому ... нет. – Servy

+0

Хорошо. Справедливо. –

1

На основе всех комментариев я понимающих вы ищете для всех элементов, которые не в Category.Contains("something") или те, которые, если они !IsReviewed

from s in db.Items 
where <Other boolean operations> && 
     (!s.Category.Contains("something") || !s.IsReviewed) 

Вы можете перемещать отрицанием вокруг так что вы исключаете любые предметы, которые находятся в Category.Contains("something") и являются IsReviewed

from s in db.Items 
where <Other boolean operations> && 
     !(s.Category.Contains("something") && s.IsReviewed) 
+0

Я чувствую, что это правильный ответ: я ищу Не (категория = «что-то» и isReviewed = true) –

+0

Если бы я мог выбрать два ответа, я бы хотел. –

+0

@ CAD.Dev нет проблем, thx для upvote – strongbutgood