4
ทำไม Func <T, bool> แทน Predicate <T>
นี่เป็นเพียงคำถามที่อยากรู้อยากเห็นฉันสงสัยว่าใครมีคำตอบที่ดีในการ: ใน. NET Framework Class Library เรามีตัวอย่างสองวิธีนี้: 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วิธีการและส่วนขยาย ... มันขึ้นอยู่กับที่?