C# 3.0 Lambda Expressions

In der Newsgroup jetbrains.resharper.community wurde die Frage aufgeworfen, ob die neuen C# 3.0 Features wirklich sinnvoll sind. Das hat mich angeregt ein kleines Beispiel zu Lambda Expressions zu zeigen.

Die Aufgabenstellung: Sortieren einer Liste nach beliebigen Kriterien:

IList<Adresse> adressen = new List<Adresse>();

public delegate int CompareFunction<T>(T x, T y);

public void Sort<T>(IList<T> list, CompareFunction<T> comparer) {
    // ...            
}

Lösung mit anonymen Delegates:

Sort(adressen,
    delegate(Adresse x, Adresse y) {
        return x.Name.CompareTo(y.Name);
    }
);

Lösung mit Lambdas:

Sort(adressen, (x, y) => x.Name.CompareTo(y.Name));

Ich halte die Lambda Expressions für eine einorme Bereicherung von C#. Schon den “syntactic sugar” den die Lambda Expressions bieten finde ich toll weil mein Code dadurch ausdrucksstärker wird. Die volle Leistung entfalten die Lambdas wenn man zur Laufzeit den Expression Tree verwendet. Was dadurch technologisch möglich wird sieht man an LINQ.

Kick it on dotnet-kicks.de

Comments are closed.