Pochi giorni fa, ho parlato di sorting sulle liste custom create utilizzando i generics.
Abbiamo visto infatti, che attraverso l'uso dei delegati risulta molto facile e veloce effettuare un sorting sulle liste di oggetti custom, senza dover creare dei comparer appositi.
In C# 3.0 la cosa è ancora più facile !
Si, perchè attraverso l'utilizzo delle lambda expression, possiamo effettuare un'operazione di sorting su oggetti personalizzati, all'interno di in un'unica riga di codice.

List<CustomItem> list = new List<CustomItem>();


list.Add(new CustomItem() { Date = DateTime.Now, Value = 1.0 });
list.Add(new CustomItem() { Date = DateTime.Now.AddYears(1), Value = 0.5 });

//sort sulla data list.Sort((CustomItem item1, CustomItem item2) => item1.Date.CompareTo(item2.Date));

Quella delle Lamda Expression è una tecnica aggiunta per facilitare ancora di più l'utilizzo dei delegati in-line in quanto rappresentano delle funzioni vere e proprie che esprimono l'implementazione di un metodo e la creazione di una nuova istanza del relativo delegato in un unico costrutto sintattico.
Potete trovare una spiegazione più dettagliata sulle Lambda Expression e su tutte le altre novità della versione 3.0 di C#, all'interno di questo articolo:
http://aspnet.html.it/articoli/leggi/2510/le-novita-di-c-30/