Expression.Lambda有反运算吗



是否对Expression.Lambda<...>(originalExpression, parameterExpression)进行反运算,以返回原始表达式?

上下文:

我正在使用lambda语法创建一个lambda表达式(根本不使用expression类),如下所示:

 return item => item.Something

在应用程序的另一层中,我想"取消lambda"这个表达式,应用

expression= Expression.Not(expression);

到它,然后再次将它包装到lambda。

这可能吗?

LambdaExpression.Body是您的原始表达式,因此您可以执行

var inverted = Expression.Lambda(Expression.Not(lambda.Body), lambda.Parameters);

最新更新