我一直在调用以下Linq方法:
public static bool Any<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)
我想知道为什么Linq不接受完美的System.Predicate<T>
代替Func<T,bool>
,或者Func
。
这是故意的Linq风格/设计决定吗?或者我错过了关于Predicate
和if "Britain" in name or " UK " in name:
if not "Ex UK" in name:
geofocusregion = "Europe"
geofocuscountry = "GB"
fundcurrency = "GBP"
的明显内容?
答案 0 :(得分:0)
我想知道为什么Linq不能接受完美的好处 System.Predicate
因为它们在语义上是等价的。没有理由采取两个完全相同的重载。 (IMO)与Func
的优点在于它有多个重载需要更多输入类型并返回任何输出类型,而Predicate<T>
非常有限。