【问题标题】:Why does Linq require Func<T,bool> and not Predicate<T>? [duplicate]为什么 Linq 需要 Func<T,bool> 而不是 Predicate<T>? [复制]
【发布时间】:2015-07-01 11:55:41
【问题描述】:

我一直在调用以下 Linq 方法:

public static bool Any<TSource>(
    this IEnumerable<TSource> source,
    Func<TSource, bool> predicate
)

我想知道为什么 Linq 不接受完美的 System.Predicate&lt;T&gt; 而不是 Func&lt;T,bool&gt;

这是一个经过深思熟虑的 Linq 风格/设计决定吗?还是我错过了关于 FuncPredicate 的明显内容?

【问题讨论】:

标签: c# .net linq


【解决方案1】:

我想知道为什么 Linq 不接受完美的 系统.谓词

因为它们在语义上是等价的。没有理由采用两个完全相同的重载。 (IMO) 与 Func 的优点是它有几个重载,接受更多输入类型并返回任何输出类型,而 Predicate&lt;T&gt; 非常有限。

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2010-10-18
    相关资源
    最近更新 更多