I use some code (available here on MSDN) to dynamically assemble LINQ expressions containing multiple OR clauses.
Corresponding code
var equals = values.Select(value => (Expression)Expression.Equal(valueSelector.Body, Expression.Constant(value, typeof(TValue))));
var body = equals.Aggregate<Expression>((accumulate, equal) => Expression.Or(accumulate, equal));
This generates a LINQ expression that looks something like this:
(((((ID = 5) OR (ID = 4)) OR (ID = 3)) OR (ID = 2)) OR (ID = 1))
I use this expression to limit recursion (100), so I want to create an expression that looks like this:
(ID = 5) OR (ID = 4) OR (ID = 3) OR (ID = 2) OR (ID = 1)
How do I change the expression build code to do this?
source
share