I'm a beginner in C#, just a question on differences between Predicate and Func delegate in C#
we know that:
public delegate bool Predicate<in T>(T obj);
public delegate TResult Func<in T, out TResult>(T arg);
so if I do like
Func<Product, bool> firstdelegate = ...
and
Predicate<Product> secondpredicate = ...
aren't they the same? I mean they all do the same thing, so why in LINQ' Where() method takes Func type delegate instead of Predicate?