1160
I'd like to add some notes about the differences between Func<T> and Expression<Func<T>>:
Func<T> is just a normal old-school MulticastDelegate;Expression<Func<T>> is a representation of lambda expression in form of expression tree;Func<T>;ExpressionVisitor;Func<T>;Expression<Func<T>>.There's an article which describes the details with code samples:
LINQ: Func<T> vs. Expression<Func<T>>.
Hope it will be helpful.