我读过建议在扩展方法中使用函数而不是谓词,因此我正在尝试这样做。
public static void Insert<T>(this ObservableCollection<T> paramOC, T NewElement, Func<T, T, bool> condition)
{
//code
}
我正在尝试以这种方式使用:
myOC.Insert(myNewElement, e=>e.Name.CompareTo(myNewElement.Name) > 0));
但是我收到一条错误消息,指出delete System.Func不接受1参数。
但是,如果我使用该函数的谓词inadad,它就可以工作。
我想念什么?
非常感谢。
您需要Func<T,bool>
(接受一个参数并返回bool
),而不是Func<T,T,bool>
Predicate<T>
之所以有效,是因为它需要一个参数并返回bool
,因此它与lambda表达式匹配。Func<T,T,bool>
需要两个参数并返回与您的表达式不匹配的布尔值,因此出现错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句