var par = Expression.Parameter(typeof(int), "p"); var left = Expression.AndAlso(Expression.GreaterThan(par, Expression.Constant(0)), Expression.LessThan(par, Expression.Constant(9))); var right = Expression.Equal(par, Expression.Constant(23)); var s = Expression.Lambda(Expression.OrElse(left, right), par); Console.WriteLine((s.Compile() as Func<int,bool>)(2));