Introduction
A lambda expression is an anonymous function and it is mostly used to create delegates in LINQ. Simply put, it's a method without a declaration, i.e., access modifier, return value declaration, and name.
Convenience. It's a shorthand that allows you to write a method in the same place you are going to use it. Especially useful in places where a method is being used only once, and the method definition is short. It saves you the effort of declaring and writing a separate method to the containing class.
Benefits
Lambda expressions should be short. A complex definition makes the calling code difficult to read.
Lambda basic definition: Parameters => Executed code
- What is a Lambda Expression?
- Why do we need lambda expressions? (Why would we need to write a method without a name?)
- Reduced typing. No need to specify the name of the function, its return type, and its access modifier.
- When reading the code, you don't need to look elsewhere for the method's definition.
- How do we define a lambda expression?
Simple Example
n => n % 2 == 1
n
is the input parameter
n % 2 == 1
is the expression
You can read n => n % 2 == 1
like: "input parameter named n
goes to anonymous function which returns true
if the input is odd".
Same example (now execute the lambda):
List<int> numbers = new List<int>{11,37,52};
List<int> oddNumbers = numbers.where(n => n % 2 == 1).ToList();
That's all, now you know the basics of Lambda Expressions.
- I didn't mention expression trees/run time advantages of lambda expression due to limited scope.