foreach, где и условие, если параметр существует - PullRequest
0 голосов
/ 04 октября 2018

У меня большой запрос, из которого я пытаюсь получить данные, используя условие Where с параметрами StudentName и StudentSurname, которое задается пользователем через форму поиска.

Если StudentName и StudentSurname имеют значения, все в порядке, но если у одного из них нет значения, я ничего не получаю.

Проблема в том, что в таком случае я хочу, чтобы этот цикл foreachполучить данные в любом случае без параметров, которые являются нулевыми.

foreach (var item in innerJoinQuery.Where(item => item.StudentName == StudentName 
                                               && item.StudentSurname  == StudentSurname)

Ответы [ 2 ]

0 голосов
/ 04 октября 2018
if (!string.IsNullOrEmpty(StudentName))
    innerJoinQuery = innerJoinQuery.Where(item => item.StudentName == StudentName);

if (!string.IsNullOrEmpty(StudentSurname))
    innerJoinQuery = innerJoinQuery.Where(item => item.StudentSurname == StudentSurname);

foreach (var item in innerJoinQuery)
...
0 голосов
/ 04 октября 2018

Вы можете поставить условие ИЛИ, позволяющее элементу пройти, если один из параметров поиска равен нулю или пуст.Что-то вроде:

innerJoinQuery.Where(item => 
    (string.IsNullOrWhiteSpace(StudentName) || item.StudentName == StudentName) 
    && 
    (string.IsNullOrWhiteSpace(StudentSurname) || item.StudentSurname  == StudentSurname)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...