The rationale for adding lambdas to the language was two things.
(1) They enable syntax conversion of queries. When you say
from customer in customers where customer.City == "London" select customer
It is getting
customers.Where(customer=>customer.City == "London")
(2) They can be converted to expression trees and thus do LINQ-to-SQL, LINQ-to-Entities, etc. possible. That is, they can represent both the ability to fulfill their semantics and the ability to test their structure.
Eric Lippert
source share