public static TExpression Replace <TExpression>( this TExpression expression, Dictionary <Expression, Expression> replacementsByTarget) where TExpression : Expression { if (replacementsByTarget.None()) { return(expression); } var replacer = new ExpressionReplacer(replacementsByTarget); var replaced = replacer.ReplaceIn(expression); return((TExpression)replaced); }