如何将 optionObject.Forms.First(f => f.FormId == formId).MultipleIteration
中的lambda表达式转换为Func,以便最终获得类似于以下格式的内容?
Func<FormObject, bool> FormID = f => f.formID == passedVal;
然后将其用于第一个表达式,得到类似以下内容:
optionObject.Forms.First(FormID).MultipleIteration
我尝试了。
Func<FormObject, PassedVal, bool> FormID => formID == PassedVal;
但是没有起作用。
请注意,lambda表达式没有任何问题,它可以正常工作。我只是尝试创建一个函数来替换表达式,使用函数名称使代码看起来更短并易于维护。
Func<FormObject, PassedVal, bool>
没有起作用的原因是,First
和类似方法所接受的 lambda 的签名需要是Func<FormObject, bool>
。由于你还想要参数化另一个值,31eee384 的答案看起来是最好的,也可能是唯一的方法。 - Ann L.