Lambda functions are essentially anonymous functions (in-line functions) that you can write instead of creating a new method to perform this once off operation.
A good example is filtering a list
I have a list of customers and I want to know who is more than 25 years old and female.
Traditionally (using a filtering method):
1: static void Main(string[] args)
2: { 3: List<Customer> customers = GetAListOfCustomer(); 4: List<Customer> matureFemaleCustomers = FindMatureFemaleCustomers(customers); 5: } 6: 7: // Find female customers over 25 years old
8: public List<Customer> FindMatureFemaleCustomers(List<Customer> customers)
9: {10: List<Customer> matureFemaleCustomers =new List<Customer>();
11: foreach (Customer c in customers)
12: {13: if (c.Age > 25 && c.Gender == Gender.Female)
14: { 15: matureFemaleCustomers.Add(c); 16: } 17: }18: return matureFemaleCustomers;
19: } In C# 2.0 with generics:
1: static void Main(string[] args){ List<customer> customers = GetAListOfCustomer();
2: List<customer> matureFemaleCustomers = customers.FindAll( delegate(Customer c) { return c.Age > 25 && c.Gender == Gender.Female; } );}
In C# 3.0 with Lambda Functions
1: static void Main(string[] args)
2: { List customers = GetAListOfCustomer(); 3: List matureFemaleCustomers = customers.Where(c => c.Age > 25 && c.Gender == Gender.Female); 4: } Simple and elegant!
1 comment:
Sir, this was the best lambda article for the persons who has just started learning C#. But code was not fully visible. Sir, please repost it. So that code is clearly visible.
Thank you in advance
Post a Comment