I have an expression of type Expression<Func<TElement, TElement, bool>>
and a constant of type TElement
. I need an expression of type Expression<Func<TElement, bool>>
with one of the parameters replaced by the constant. In other words, I need the body to the following method:
public static Expression<Func<TElement, bool>> ReplaceParameter<TElement>
(
Expression<Func<TElement, TElement, bool>> inputExpression,
TElement element
)
{
...
}
If I call ReplaceParameter((i1, i2) => i1 > i2, 5)
, I expect the result to be i => i > 5
.
I was thinking, it might be able to recursively deconstruct and then reconstruct the input expression and replace all occurrences of the second parameter with a constant expression. Since there are so many different kind of expressions, I'm unsure on how to do that, though.
Aucun commentaire:
Enregistrer un commentaire