Pourquoi Func<T,bool> au lieu de Prédicat<T>?

C'est juste une curiosité question, je me demandais si quelqu'un avait une bonne réponse à:

Dans le .NET Framework Bibliothèque de Classe, nous avons par exemple ces deux méthodes:

public static IQueryable<TSource> Where<TSource>(
    this IQueryable<TSource> source,
    Expression<Func<TSource, bool>> predicate
)

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

Pourquoi ont-ils utiliser Func<TSource, bool> au lieu de Predicate<TSource>? Semble que le Predicate<TSource> n'est utilisé que par List<T> et Array<T>, tandis que Func<TSource, bool> est utilisé par à peu près tous Queryable et Enumerable méthodes et les méthodes d'extension... qu'est-ce qui?

  • Oh oui, le manque d'uniformité dans l'utilisation de ces lecteurs me fou trop.
InformationsquelleAutor Svish | 2009-03-20