LINQ 动态查询(多条件)
小弟,没有接触过linq,现在项目需要一个linq查询,还有点复杂。求大神指教。
现有一个List<Marker> list 数据源,
Marker 有(id ,type【type1,type2,type3....】,
status【status1,status2,status3.....】 三个属性),
根据List<string> typeList 和List<string> statusList 进行过滤(两个list可能只有一个,可能都存在,所以需要动态查询)。
例如typeList = {type1,type3}; statusList ={status1,status4}
或者 typeList 为空 statusList ={status1}
过滤List<Marker> list 数据源得到 resultList,怎么求得这个resultList。
代码需要这样形式的:
现有一个List<Marker> list 数据源,
Marker 有(id ,type【type1,type2,type3....】,
status【status1,status2,status3.....】 三个属性),
根据List<string> typeList 和List<string> statusList 进行过滤(两个list可能只有一个,可能都存在,所以需要动态查询)。
例如typeList = {type1,type3}; statusList ={status1,status4}
或者 typeList 为空 statusList ={status1}
过滤List<Marker> list 数据源得到 resultList,怎么求得这个resultList。
代码需要这样形式的:
ParameterExpression c = Expression.Parameter(typeof(Customer), "c");
Expression condition = Expression.Constant(false);
foreach (string s in starts)
{
Expression con = Expression.Call(
Expression.Property(c, typeof(Customer).GetProperty("CustomerID")),
typeof(string).GetMethod("StartsWith",
new Type[] { typeof(string) }),
Expression.Constant(s));
condition = Expression.Or(con, condition);
}
Expressionbool>> end =
Expression.Lambdabool>>
(condition, new ParameterExpression[] { c });
...全文


LINQ
