示例#1
0
        public static Expression <Func <T, bool> > AddWithAnd <T>(this Expression <Func <T, bool> > expr1, Expression <Func <T, bool> > expr2)
        {
            if (expr1 == null)
            {
                return(expr2);
            }
            var replacer        = new ExpressionReplacer(CreateFromToReplaceSet(expr2.Parameters, expr1.Parameters), null, null, null, null);
            var rightExpression = (LambdaExpression)replacer.HandleExpression(expr2);

            return(Expression.Lambda <Func <T, bool> >
                       (Expression.AndAlso(expr1.Body, rightExpression.Body), expr1.Parameters));
        }