我有一个很大的查询,我正在尝试使用Where
和StudentName
这两个由用户通过搜索表单设置的条件,使用StudentSurname
条件来获取数据
如果StudentName
和StudentSurname
具有值,那么一切都很好,但是如果其中之一没有值,那么我什么也收不到。
问题在于,在这种情况下,无论如何我都希望此foreach循环获取没有参数为null的数据。
foreach (var item in innerJoinQuery.Where(item => item.StudentName == StudentName
&& item.StudentSurname == StudentSurname)
答案 0 :(得分:4)
如果其中一个搜索参数为null或为空,则可以放置一个OR条件,该条件允许一项通过。像这样:
innerJoinQuery.Where(item =>
(string.IsNullOrWhiteSpace(StudentName) || item.StudentName == StudentName)
&&
(string.IsNullOrWhiteSpace(StudentSurname) || item.StudentSurname == StudentSurname)
)
答案 1 :(得分:4)
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)
...