【发布时间】:2019-02-12 17:00:26
【问题描述】:
你能解释一下我在这里做错了什么吗
我在 linq 中使用搜索条件,并且在过滤结果时遇到了这个问题,如果我使用了一个通用变量,那么它不会按预期进行搜索。
我使用了单独的变量并且它起作用了
工作正常:
string city = Request.QueryString["city"];
properties = (Request.QueryString["city"] != null) ? properties.Where(x => x.City == city) : properties;
string pType = Request.QueryString["propertytype"];
properties = (Request.QueryString["propertytype"] != null) ? properties.Where(x => x.PropertyType == pType) : properties;
当我使用一个泛型变量时不起作用:
string searchCriteria = Request.QueryString["city"];
properties = (Request.QueryString["city"] != null) ? properties.Where(x => x.City == searchCriteria) : properties;
searchCriteria= Request.QueryString["propertytype"];
properties = (Request.QueryString["propertytype"] != null) ? properties.Where(x => x.PropertyType == searchCriteria) : properties;
还有使多重搜索更加优化的任何策略。
【问题讨论】:
-
能否请您详细说明一下——“它没有按预期搜索”
-
这可能与闭包有关。 where 子句中的
searchCriteria只能在您将 searchCriteria 重新定义为其他含义之后实际枚举它时进行评估。
标签: c# linq razor model-view-controller