Why Func <T, bool> en lugar de Predicate <T>?
Esta es solo una pregunta de curiosidad. Me preguntaba si alguien tenía una buena respuesta para:
En la biblioteca de clases de .NET Framework tenemos, por ejemplo, estos dos métodos:
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
)
¿Por qué usanFunc<TSource, bool>
en lugar dePredicate<TSource>
? Parece que laPredicate<TSource>
solo lo utilizaList<T>
yArray<T>
, mientrasFunc<TSource, bool>
es utilizado por casi todosQueryable
yEnumerable
métodos y métodos de extensión ... ¿qué pasa con eso?