.NET LinQ im Detail erklärt

Ich habe mal eine Videoserie erstellt, die genau im Detail erklärt, wie LinQ (Language-integrated Query) in .NET eigentlich genau funktioniert und auf welchen Mechanismen es aufbaut.

Denn nur wenn man weiß, wie was auf einem Raumschiff funktioniert, kann man Khan besiegen! 😉

Am besten guckt man sich die folgenden Videos direkt bei Youtube in der höchsten Auflösung und als Vollbild an. Ab Video 2 habe ich dann auch die Schrift im Visual Studio selbst größer gemacht, zwecks besserer Lesbarkeit.

Kapitel 1: IEnumerable
Kapitel 2: Yield Return
Kapitel 3: Funktionsdelegaten
Kapitel 4: Extension Methods
Kapitel 5: LinQ: Where
Kapitel 6: LinQ: Select, Any, All, Count, Except, Take

Deshalb fangen wir damit an, das Interface zu untersuchen, den jede Liste, jede Collection in .NET implementiert: IEnumerable

Code aus diesem Video

Read more

Linq: Split()

English Version

Terminator T1000

Ihr kennt ja den Aschenputtel-Spruch “Die Guten ins Töpfchen, die Schlechten ins Kröpfchen.”?

Naja, .NET Linq hat eine Lösung für das Eine oder Andere, genannt Where(). Wenn man das benutzt, sieht die Lösung wahrscheinlich so aus:

var evens = list.Where(number => ((number % 2) == 0));
var odds =  list.Where(number => ((number % 2) != 0));

Aber es gibt keine Lösung für Beides. Also hab ich mir selbst eine geschrieben:

public static void Split<T>(this IEnumerable<T> source
    , Func<T, Boolean> predicate
    , out IEnumerable<T> trueList
    , out IEnumerable<T> falseList)
{
    trueList = source.Where(predicate);
    falseList = source.Except(trueList);
}

Read more