 // [arguments] => [method-body]

// With parameters
n => n == 2
(a, b) => a + b

// With explicitly typed parameters
(int a, int b) => a + b

// No parameters
() => return 0

// Assigning lambda to delegate
Func f = (a, b) => a + b;


Multi-statement lambdas have bodies enclosed by braces and inside of them code can be written like in standard methods.Lambda expressions can be passed as arguments directly in method calls similar to anonymous delegates but with a more aesthetic syntax.var list = stringList.Where(n => n.Length > 2);


Lambda expressions are essentially compiler-generated methods that are passed via delegates.