4
为什么用Func <T,bool>代替Predicate <T>?
这只是一个好奇心问题,我想知道是否有人对以下问题有一个很好的答案: 在.NET Framework类库中,我们有例如以下两种方法: 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 ) 他们为什么使用Func<TSource, bool>代替Predicate<TSource>?似乎Predicate<TSource>仅由List<T>和使用Array<T>,而Func<TSource, bool>几乎所有Queryable和Enumerable方法以及扩展方法都使用...,这是怎么回事?