Detailed explanation with example - Delegate, Linq, Lambda Expn Create Extension Method & Expression Tree
Delegate: Delegate in C# is a way to pass function as parameter along with parameters without let the developer know where the actual function resides. Developer just need to call the delegate object with the function's parameters.