Lambda expression used to declare an expression tree : Lambda « LINQ « C# / C Sharp






Lambda expression used to declare an expression tree

 

using System;
using System.Linq;
using System.Linq.Expressions;

class Program {
    static void Main(string[] args) {
        Expression<Func<int, bool>> isOddExpression = i => (i & 1) == 1;
        ParameterExpression param = Expression.Parameter(typeof(int), "i");
        Expression<Func<int, bool>> isOdd =
            Expression.Lambda<Func<int, bool>>(
            Expression.Equal(
              Expression.And(
                param,
                Expression.Constant(1, typeof(int))),
              Expression.Constant(1, typeof(int))),
            new ParameterExpression[] { param });

        Func<int, bool> isOddCompiledExpression = isOddExpression.Compile();
        for (int i = 0; i < 10; i++) {
            if (isOddCompiledExpression(i))
                Console.WriteLine(i + " is odd");
            else
                Console.WriteLine(i + " is even");
        }
    }
}

 








Related examples in the same category

1.Lambda expression used to declare a delegate
2.If your query's lambda expressions reference local variables, these variables are subject to outer variable semantics.
3.return a lambda function
4.A local variable instantiated within a lambda expression is unique per invocation of the delegate instance.
5.square is assigned the lambda expression x = > x * x:
6.A lambda expression has the following BNF form: (parameters) => expression-or-statement-block
7.A lambda expression can reference the local variables and parameters of the method in which it's defined.