C# 表达式树修改
我有这个C# 表达式树修改,c#,lambda,expression,C#,Lambda,Expression,我有这个 expression = expression.And(c => (c.Parameter.ValueType != Domain.Entities.ValueType.Selection && SqlFunctions.PatIndex(value, c.Value) > 0 )
expression = expression.And(c => (c.Parameter.ValueType != Domain.Entities.ValueType.Selection
&& SqlFunctions.PatIndex(value, c.Value) > 0
)
||
(c.Parameter.ValueType == Domain.Entities.ValueType.Selection
&& value == c.LookupValue.Code
)
);
我需要修改它,以便可以有多个值(用户现在可以从下拉列表中选择多个选项)。有什么想法吗?So
Domain.Entities.ValueType.Selection
现在是一个列表,而不是单个值?没有“值”现在不是单个值。所以我有一个值列表,通过迭代,我需要重建这个表达式。这些值需要与或组合。e、 g.(c.Parameter.ValueType==Domain.Entities.ValueType.Selection&&(value1==c.LookupValue.Code)| |(value2==c.LookupValue.Code));我想我已经非常接近于理解这一点了,但似乎需要更多的信息才能真正地填写它,成为一个-你能添加更多关于你正在传递的信息和你期望得到的信息吗?想象一下一个有很多过滤器的搜索表单。当过滤器是一个单一的选择之一时,表达式就像上面提到的那样构建,然后你就有了类似results=context.any(表达式)的东西。现在,此表达式需要考虑多个选定值。