2

给定这样的 Linq 示例:

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

我将如何提取 lambda 表达式并将其保存在委托中以便可以传入?

就像是:

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 回答