private static readonly int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; static void Main() { DynamicLamdbaExpressionSample1(); DynamicLamdbaExpressionSample2(); } //display numbers that greater than 5 public static void DynamicLamdbaExpressionSample1() { //define paramater name var parameter = Expression.Parameter(typeof(int), "i"); //define constant name var constant = Expression.Constant(5); var body = Expression.GreaterThan(parameter, constant); //lambda expression var 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 5 public 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 5 var body1 = Expression.GreaterThan(parameter, constant1); //less than 7 var body2 = Expression.LessThanOrEqual(parameter, constant2); //And Operation var body = Expression.And(body1, body2); var lambda = Expression.Lambda<Func<int, bool>>(body, parameter); numbers.Where(lambda.Compile()).ToList().ForEach(v => Console.WriteLine(v)); }
Dynamic lamdba expression
最新推荐文章于 2019-07-21 07:59:10 发布