2

次のような Linq サンプルがあるとします。

myObject.firstOrDefault(o => o.propertXyz == otherObj.propertyXyz);

ラムダ式を抽出してデリゲートに保持して、渡すことができるようにするにはどうすればよいですか?

何かのようなもの:

delegate expression1 = (o => o.propertXyz == otherObj.propertyXyz);
myObject.firstOrDefault(expression1);
4

2 に答える 2

3

「オブジェクト」を、所有しているオブジェクトのタイプに置き換えます。

Func<Object, bool> expression1 = (o => o.propertXyz == otherObj.propertyXyz);
myObject.firstOrDefault(expression1);
于 2012-10-29T22:00:43.000 に答える
0

これを行うには、ジェネリックFunc<>オーバーロードを使用する必要があります。

たとえば、オブジェクトが と呼ばれる場合myObject、次を使用します。

Func<myObject, bool> myExpression = o => o.propertXyz == otherObj.propertyXyz
于 2012-10-29T22:03:08.133 に答える