假设:
var paramA = Expression.Parameter(typeof(string), "a");
和
Expression<Func<string, bool>> expr = b => b == "Something";
是否有b
将paramA
替换为expr
表达式?
答案 0 :(得分:2)
您可以走expr
的表达式树,并使用此问答语"Combine two lambda expressions with inner expression"中描述的方法将所有b
替换为paramA
。
但是,如果你只需要一个使用paramA
作为参数的lambda表达式,那么更容易制作一个包裹expr
的lambda:
var res = (Expression<Func<string,bool>>)Expression.Lambda(
Expression.Invoke(expr, paramA)
, paramA
);