给定这样的 Linq 示例:
myObject.firstOrDefault(o => o.propertXyz == otherObj.propertyXyz);
我将如何提取 lambda 表达式并将其保存在委托中以便可以传入?
就像是:
delegate expression1 = (o => o.propertXyz == otherObj.propertyXyz);
myObject.firstOrDefault(expression1);
将“对象”替换为您拥有的对象类型。
Func<Object, bool> expression1 = (o => o.propertXyz == otherObj.propertyXyz);
myObject.firstOrDefault(expression1);
您应该使用通用Func<>
重载来执行此操作。
例如,如果您的对象被调用myObject
,您将使用:
Func<myObject, bool> myExpression = o => o.propertXyz == otherObj.propertyXyz