Could you explain the difference between Func vs. Action vs. Predicate?

Technology CommunityCategory: C#Could you explain the difference between Func vs. Action vs. Predicate?
VietMX Staff asked 3 years ago
  • Predicate: essentially Func<T, bool>; asks the question “does the specified argument satisfy the condition represented by the delegate?” Used in things like List.FindAll.
  • Action: Perform an action given the arguments. Very general purpose. Not used much in LINQ as it implies side-effects, basically.
  • Func: Used extensively in LINQ, usually to transform the argument, e.g. by projecting a complex structure to one property.