Partager via


Filtrage des données en C# avec LINQ

Le filtrage fait référence à l’opération de restriction du jeu de résultats pour que celui-ci contienne uniquement les éléments qui répondent à une condition spécifiée. Elle est également appelée sélection des éléments qui correspondent à la condition spécifiée.

Important

Ces exemples utilisent une source de données System.Collections.Generic.IEnumerable<T>. Les sources de données basées sur System.Linq.IQueryProvider utilisent des sources de données System.Linq.IQueryable<T> et des arborescences d’expressions. Les arborescences d’expressions présentent des limitations sur la syntaxe C# autorisée. De plus, chaque source de données IQueryProvider, telle que EF Core peut imposer des restrictions supplémentaires. Consultez la documentation de votre source de données.

L’illustration suivante montre les résultats du filtrage d’une séquence de caractères. Le prédicat de l’opération de filtrage spécifie que le caractère doit être « A ».

Diagramme illustrant une opération de filtrage LINQ

Les méthodes d’opérateurs de requête standard qui effectuent des opérations de sélection sont répertoriées dans la table suivante :

Nom de la méthode Description Syntaxe d'expression de requête C# Informations complémentaires
OfType Sélectionne des valeurs, en fonction de leur capacité à être castées en un type spécifié. Non applicable. Enumerable.OfType

Queryable.OfType
Where Sélectionne les valeurs qui sont basées sur une fonction de prédicat. where Enumerable.Where

Queryable.Where

L’exemple suivant utilise la clause where pour filtrer les chaînes d’un tableau qui ont une longueur spécifique.

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query = from word in words
                            where word.Length == 3
                            select word;

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

La requête équivalente utilisant la syntaxe de méthode est illustrée dans le code suivant :

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query =
    words.Where(word => word.Length == 3);

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

Voir aussi