【发布时间】:2016-12-18 15:54:39
【问题描述】:
我有一个方法接受表达式Expression<Func<TFoo, string>> exp。
我可以像这样传递单个表达式
MyMethod(o => o.SomeStringProperty);
但现在我想组合表达式(来自两个字符串属性)并传入这个方法
我发现的所有其他例子都是Expression<Func<Foo, bool>>。
我试过了
Expression<Func<TFoo, string>> fn1 = x => x.SomeStringProperty1;
Expression<Func<TFoo, string>> fn2 = x => x.SomeStringProperty2;
var body = Expression.Coalesce(fn1.Body, fn2.Body);
var lambda = Expression.Lambda<Func<TFoo, string>>(body, fn1.Parameters[0]);
但几乎每个 Expression 的函数都会抛出异常。这个怎么结合?
【问题讨论】:
-
“组合”两个表达式是什么意思?在您的示例中,您只是调用带有两个参数的方法。
-
@IvanStoev:更新了我的问题
标签: c# expression func