是否存在与Expression.Lambda<...>(originalExpression, parameterExpression)
相反的操作,它会返回原始表达式?
上下文:
我正在使用lambda语法创建一个lambda表达式(根本不使用Expression类),如下所示:
return item => item.Something
在应用程序的不同层,我想“un-lambda”这个表达式,应用
expression= Expression.Not(expression);
然后将它再次包装到lambda。
这可能吗?
答案 0 :(得分:4)
LambdaExpression.Body
是您的原始表达,因此您可以
var inverted = Expression.Lambda(Expression.Not(lambda.Body), lambda.Parameters);