tags:

views:

193

answers:

4

Hai guys,

My fellow developers were talking about lambda expressions this morning. So i decided to ask it here in SO

  • when should i use lambda expression which comes with C# 3.0?
+3  A: 

A lambda expression is an anonymous function that can contain expressions and statements, and can be used to create delegates or expression tree types.

expect of using

del myDelegate = delegate(int x){return x*x; };
int j = myDelegate(5); //j = 25

you can write

del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
ArsenMkrt
+2  A: 

I don't think that there is a general rule when your should use them, but if I look to myself I tend to use them whenever I use anonymous methods. Most often this happens when spawning some code in a new thread using the ThreadPool, or when doing LINQ queries.

ThreadPool example:

ThreadPool.QueueUserWorkItem(state => {
    // the code to run on separate thread goes here
});

LINQ:

var myItems = GetSomeIEnumerable()
                  .Where(o => o.SomeProperty.Equals("some value"));
                  .OrderBy(o => o.SomeOtherProperty);
Fredrik Mörk
+1  A: 

Short answer: read "C# in depth" from SO's top-most voted fellow Jon Skeet. Its an excellent book and you will learn all about the new C# 3 features, especially when to use them, including Lambda expressions.

Doc Brown
A: 
herzmeister der welten
I disagree. I find them especially useful for events. I can see the unsubscription being an issue in only be a few cases.
Chuck Conway