Evaluate object tree expressions
-
Tuesday, July 31, 2007 5:31 PM
Hi!
I have this:
IList<int> numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };Expression parameter = Expression.Parameter(typeof(int), "x");
BinaryExpression binaryExpression = Expression.Or(
ConditionalExpression.LessThan(parameter, MemberExpression.Constant(5)),
ConditionalExpression.GreaterThan(parameter, MemberExpression.Constant(7)));
what should i do next to evalute the expression "binaryExpression" on the list "numbers"?
This binary expression would find in numbers where x < 5 | x > 7...
Best Regards!
Felipe
All Replies
-
Tuesday, July 31, 2007 7:34 PM
I think this is what you are trying to achieve:
Code SnippetIEnumerable<int> numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
ParameterExpression parameter = Expression.Parameter(typeof(int), "x");
Expression<Func<int, bool>> expr = Expression.Lambda<Func<int, bool>>(
Expression.Or(
ConditionalExpression.LessThan(parameter, MemberExpression.Constant(5)),
ConditionalExpression.GreaterThan(parameter, MemberExpression.Constant(7))),
new ParameterExpression[] { parameter });
IEnumerable<int> results = numbers.Where(expr.Compile());
foreach (int i in results)
Console.WriteLine(i);

