Dynamic lamdba expression

来源:互联网 发布:皇冠娱乐系统源码搭建 编辑:程序博客网 时间:2024/06/03 15:39
private static readonly int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };static void Main(){DynamicLamdbaExpressionSample1();DynamicLamdbaExpressionSample2();}//display numbers that greater than 5public static void DynamicLamdbaExpressionSample1(){//define paramater namevar parameter = Expression.Parameter(typeof(int), "i");//define constant namevar constant = Expression.Constant(5);var body = Expression.GreaterThan(parameter, constant);//lambda expressionvar lambda = Expression.Lambda<Func<int, bool>>(body, parameter);Console.WriteLine("display numbers that greater than 5");numbers.Where(lambda.Compile()).ToList().ForEach(v => Console.WriteLine(v));}//display numbers that less than 7 and greater than 5public static void DynamicLamdbaExpressionSample2(){Console.WriteLine("display numbers that less than 7 and greater than 5");var parameter = Expression.Parameter(typeof(int), "i");var constant1 = Expression.Constant(5);var constant2 = Expression.Constant(7);//greater than 5var body1 = Expression.GreaterThan(parameter, constant1);//less than 7 var body2 = Expression.LessThanOrEqual(parameter, constant2);//And Operationvar body = Expression.And(body1, body2);var lambda = Expression.Lambda<Func<int, bool>>(body, parameter);numbers.Where(lambda.Compile()).ToList().ForEach(v => Console.WriteLine(v));}

原创粉丝点击