是否可以转换Expression为Expression<Func<T, bool>>if 表达式实例是在 上创建的T?
最后,我有一个列表List<Expression>,需要在Expression<Func<T, bool>>的每个表达式List<Expression>与 聚合的位置上生成AND。
是的; 只需调用Expression.Lambda<Func<T, bool>>(..., parameter),其中...是由要组合的表达式组成的表达式。
你可能会想要list.Aggregate(Expressions.AndAlso)。
如果您的表达式并非全部共享相同的ParameterExpression,则需要重写它们才能这样做。(使用ExpressionVisitor)