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?
Hai guys,
My fellow developers were talking about lambda expressions this morning. So i decided to ask it here in SO
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
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);
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.