Log in to see your wikis
switch-Ausdrücke haben folgende Verbesserungen bekommen:
Die neue Reihenfolge (Variable vor switch) sollte die Trennung von Ausdruck und Anweisung visuell vereinfachen.
=> ersetzt caseund :. Dies ist intuitiver, präziser und einfacher zu lesen.
_ ersetzt den default-Fall 
Die Textkörper sind nun Ausdrücke und keine Anweisungen mehr.
public enum Vehicles
{
    Unicycle,
    Bicycle,
    Tricycle,
}
// Neu
public static int GetWheelCount(Vehicles myRide) =>
    myRide switch
    {
        Vehicles.Unicycle  => 1,
        Vehicles.Bicycle   => 2,
        Vehicles.Tricycle  => 3,
        _                  => throw new ArgumentException(message: "invalid enum value", paramName: nameof(myRide)),
    };
// Alt
public static int GetWheelCountOld(Vehicles myRide)
{
    switch (myRide)
    {
        case Vehicles.Unicycle:
            return 1;
        case Vehicles.Bicycle:
            return 2;
        case Vehicles.Tricycle:
            return 3;
        default:
            throw new ArgumentException(message: "invalid enum value", paramName: nameof(myRide));
    };
}Es ist nun auch moeglich switch-Ausdrücke auf die Eigenschaften anzuwenden:
public static string GetAbbreviatedName(string name) => 
    name switch  {
       { Length: >= 5 } => name.Substring(0, 5),
       _ => name,
}Mit Tupelmuster koennen mehrere Werte in einem switch-Ausdruck angewendet werden
public static string RockPaperScissors(string first, string second)
    => (first, second) switch
    {
        ("Stein", "Papier") => "Das Papier wickelt den Stein ein, Papier gewinnt.",
        ("Stein", "Schere") => "Der Stein macht die Schere stumpf, Stein gewinnt.",
        ("Papier", "Stein") => "Das Papier wickelt den Stein ein, Papier gewinnt.",
        ("Papier", "Schere") => "Die Schere schneidet das Papier, Schere gewinnt.",
        ("Schere", "Stein") => "Der Stein macht die Schere stumpf, Stein gewinnt.",
        ("Schere", "Papier") => "Die Schere schneidet das Papier, Schere gewinnt.",
        (_, _) => "Unentschieden"
    };