将表达式转换为表达式<Func<T, bool>>

kos*_*kov 5 c# expression

是否可以转换ExpressionExpression<Func<T, bool>>if 表达式实例是在 上创建的T

最后,我有一个列表List<Expression>,需要在Expression<Func<T, bool>>的每个表达式List<Expression>与 聚合的位置上生成AND

SLa*_*aks 6

是的; 只需调用Expression.Lambda<Func<T, bool>>(..., parameter),其中...是由要组合的表达式组成的表达式。

你可能会想要list.Aggregate(Expressions.AndAlso)

如果您的表达式并非全部共享相同的ParameterExpression,则需要重写它们才能这样做。(使用ExpressionVisitor