Introduction of lambda expressions in .NET 3.5 have simplified many operations. One of them is sorting List<t> of complex types. For example assume that we have a type named Person and it has a Name property among other properties. Now if we want to sort a list of List<Person> on the Name property, we just have to use a single line of code.list.Sort((p1,p2)=>p1.Name.CompareTo(p2.Name));Or to sort on the Age propertylist.Sort((p1,p2)=>p1.Age.CompareTo(p2.Age));Here we are creating a delegate of Comparison<Person> using lambda expression and passing it to one of the overload of sort () method which accepts a Comparison<t>. The following code is breakdown of the above one liner into 2 lines.Comparison<Person> pc=(p1,p2)=>p1.Name.CompareTo(p2.Name);                                            list.Sort(pc);In short, we can use lambda expression to create delegates inline and pass them where ever a delegate can be passed. The List<t> class itself has many methods where you can pass delegates to perform certain actions. For example List<t>.ForEach() method.list.ForEach(o => Console.WriteLine(o.Name));Here we are outputting the names of persons in the list to the console without using a foreach loop.