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
最新推荐文章于 2023-04-20 00:01:03 发布