给定:
var paramA = Expression.Parameter(typeof(string), "a");
和:
Expression<Func<string, bool>> expr = b => b == "Something";
是否可以将 b
替换为 paramA
到表达式 expr
中?
最佳答案
您可以遍历 expr
的表达式树,并使用此问答中描述的方法将所有出现的 b
替换为 paramA
:"Combine two lambda expressions with inner expression" .
但是,如果您只需要一个使用 paramA
作为参数的 lambda 表达式,则创建一个包装 expr
的 lambda 会更容易:
var res = (Expression<Func<string,bool>>)Expression.Lambda(
Expression.Invoke(expr, paramA)
, paramA
);
关于c# - 将参数替换为表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44355625/