Switch expressions avec tuples en C#

Technique avancée pour simplifier la logique conditionnelle complexe en utilisant le pattern matching sur des tuples.

Exemple

public static string GetAction((string role, string state) input) => input switch
{
    ("Admin", "Active")      => "FullAccess",
    ("User",  "Active")      => "LimitedAccess",
    ("Guest", _)              => "ReadOnly",
    (_,          "Suspended")   => "NoAccess",
    _                             => "Unknown"
};

Résumé

  • Simple et lisible : compare plusieurs éléments en une seule expression, parfait pour des cas de dispatch.
  • Moins de code répétitif : on évite les if/else et l'extraction manuelle des champs.
  • Flexible : possibilité de combiner tuples, enums ou classes dans les patterns pour couvrir la plupart des cas.
Écrit le 2025-08-15