3
私は式Expression<Func<TFoo, string>> exp
をとる方法があります。同じ型の2つの式をマージする(ブールなし)
私はこの
MyMethod(o => o.SomeStringProperty);
のような単一の式を渡すことができます。しかし、今、私は(2つの文字列のプロパティから)式を結合し、私が見つけた他のすべての例では、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]);
を試みたが、ほとんどの式のすべての機能は、例外がスローされます。これをどのように組み合わせるか?
よう
あなたは「組み合わせ」とはどういう意味ですか:
第二のアプローチは、最初のラムダ式のパラメータに二ラムダ式本体を再バインドするための単純なパラメータ代替ヘルパーを使用しています2つの表現?あなたの例では、2つの引数を持つメソッドを呼び出すだけです。 –
@IvanStoev:私の質問を更新しました –