3
표현식이 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]);
을 시도했지만 표현의 거의 모든 기능은 예외가 발생합니다. 이 작업을 결합하는 방법은 무엇입니까?
같은
을 의미합니까 :
두 번째 방법은 첫 번째 람다 식의 매개 변수에 두 번째 람다 식 본체를 리 바인드하는 간단한 매개 변수 대체물 도우미를 사용 두 가지 표현? 귀하의 예제에서, 당신은 단지 두 개의 인수를 가진 메소드를 호출하고 있습니다. –
@IvanStoev : 내 질문 업데이트 –