tags:

views:

174

answers:

3

Is there a situation where the use of the lambda expression is particularly helpful or its mainly usage is to write less code?

+2  A: 

Lambda expressions are syntactic sugar for anonymous methods, and their use cases are mostly the same.

Lambdas can also be converted to expression trees.

As they are much shorter and easier to write (at least for the simple cases), that in itself is helpful.

Oded
I like the expression "syntactic sugar", I didn't know it.
Maurizio Reginelli
Not *quite* the same - lambda expressions can also be converted into expression trees, whereas anonymous methods can't. (There's no such term as "anonymous delegate" - there are *anonymous methods*, and *anonymous functions* - that latter is a term covering both anonymous methods an lambda expressions.
Jon Skeet
@Jon - Thanks for the correction. Answer updated.
Oded
+1  A: 

Take a look at John Skeet's SO answer here. And here is another SO question with specific uses of lambdas

David Robbins
+17  A: 

The justification for adding lambdas to the language was two things.

(1) They make syntactic transformation of query comprehensions possible. When you say

from customer in customers 
where customer.City == "London" 
select customer

That becomes

customers.Where(customer=>customer.City == "London")

(2) They can be turned into expression trees, and thereby make LINQ-to-SQL, LINQ-to-Entities, and so on, possible. That is, they can represent both the ability to do their semantics and the ability to inspect their structure.

Eric Lippert
Could you provide an example of an expression tree, please? Thanks
Maurizio Reginelli
@Eric - You forgot to say "And they're just really cool" ;)
David Robbins
@Maurizio: http://blogs.msdn.com/charlie/archive/2008/01/31/expression-tree-basics.aspx
Eric Lippert
@Eric: Thank you very much.
Maurizio Reginelli