我有一个页面,其中为用户提供了四个搜索字段。我想取字段的交集并显示结果。但是,用户不需要填写所有字段。
在我的控制器中,我有以下代码。
string subject = (string)Session[d.sessionSearchSubject];
string courseNumber = (string)Session[d.sessionSearchCourseNum];
string yearLev = (string)Session[d.sessionSearchYearLev];
string period = (string)Session[d.sessionSearchPer];
if (!(subject.Equals("") && courseNumber.Equals("") && yearLev.Equals("") && period.Equals("")))
{
db.Courses.Where(a => a.subject.Equals(subject) && a.coursenumber.Equals(courseNumber) && a.period.Equals(period...
}
else if (!(subject.Equals("") && courseNumber.Equals("") && yearLev.Equals("")))
{
// Query the database.
}
else if (!(subject.Equals("") && courseNumber.Equals("") && period.Equals("")))
{
// Query the database.
}
else if (!(subject.Equals("") && yearLev.Equals("") && period.Equals("")))
...
如您所见,会有很多 if 语句。我想知道是否有更好的方法来做到这一点?即,如果字段为空,则忽略该字段的单个查询语句。或者如果我可以用相当于“任何”的东西替换空字符串???