Le filtrage par motif (pattern matching) en C#
Dans cette leçon, vous allez utiliser une expression switch avec des motifs pour vérifier proprement et sûrement le type et la valeur des données.
Introduction
Le filtrage par motif (pattern matching) permet de vérifier le type d'une valeur, de tester une condition et d'en extraire les données pour les utiliser aussitôt, le tout dans une seule expression. Il remplace la vérification de type suivie d'une conversion manuelle, longue et source d'erreurs.
L'expression switch de la fonction Describe teste les motifs dans l'ordre : null pour les données absentes, int number when number > 0 pour les entiers positifs, string { Length: > 0 } pour les chaînes non vides et _ pour tous les autres cas. Avec la valeur 12, c'est le motif de l'entier positif qui correspond, et le résultat est positive 12.
Voir comment ça marche
Déplacez le curseur pour changer le jour. Le programme saute directement au case correspondant, ou au default si rien ne correspond.
Exemple C# exécutable
using System;
class Program
{
static string Describe(object? value) => value switch
{
null => "missing",
int number when number > 0 => $"positive {number}",
string { Length: > 0 } text => $"text: {text}",
_ => "other"
};
static void Main() => Console.WriteLine(Describe(12));
}
positive 12S'entraîner avec le débogueur
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
- Classification de triangle Classifiez trois longueurs de côtés comme invalide, équilatéral, isocèle ou scalène. Facile
- Impair, Pair ou Aucun des deux Classifiez un nombre selon qu'il s'agit d'un entier impair, d'un entier pair, ou d'aucun des deux. Facile