Mega Code Archive

 
Categories / C# / LINQ
 

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");         }     } }