.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

Die neuen C# 6.0 Sprachfeatures erklärt (Englisch)

Ich bin hauptberuflich und auch leidenschaftlich Softwareentwickler und seit mehr als einem Jahrzehnt jetzt auf der Microsoft-Platform .NET unterwegs.

Vor ein paar Monaten kam dann auch die neue Version des C# Compilers heraus, der die neue Sprachversion C# 6.0 unterstützt.

Und in folgendem Video welche ich “wiff ze German English accent” aufgenommen habe, gehe ich Schritt für Schritt auf die wichtigsten neuen Syntax-Features ein.

Unter dem Video auf Youtube – aber auch hier – findet ihr die Zeitindices, an denen jeweils ein neues Feature beginnt:


Read more

Yield return & using IDisposable

English Version

“Yield return” ist ein mächtiges und praktisches Statement, wenn man schnell und einfach eine iterierbare Liste erzeugen möchte, ohne erst großartig ein Array oder eine List anzulegen:

using System;
using System.Collections.Generic;
using System.Drawing;

class Program
{
    static void Main()
    {
        var colors = Rainbow;

        Console.WriteLine("colors.GetType(): {0}", colors.GetType());
        Console.WriteLine();

        foreach (Color color in colors)
        {
            Console.WriteLine(color.Name);
        }

        Console.ReadLine();
    }

    static IEnumerable<Color> Rainbow
    {
        get
        {
            yield return (Color.Red);
            yield return (Color.Orange);
            yield return (Color.Yellow);
            yield return (Color.Green);
            yield return (Color.LightBlue);
            yield return (Color.Indigo);
            yield return (Color.Violet);
        }
    }
}
Red
Orange
Yellow
Green
LightBlue
Indigo
Violet

Der .NET Compiler erzeugt dann im Hintergrund die notwendigen IEnumerable- und IEnumerator-implementierenden Klassen und die State Machine und alles ist fein und übersichtlich.
Read more