English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Syntaxe de méthode LINQ

Dans la section précédente, vous avez découvert la syntaxe de requête LINQ. Ici, vous découvrirez la syntaxe des méthodes.

La syntaxe des méthodes (également appelée syntaxe fluide) utilise les extensions incluses dans les classes statiques Enumerable ou Queryable, de la même manière que vous appelez une extension méthode de n'importe quelle classe.  

Le compilateur convertit la syntaxe de requête en syntaxe des méthodes au moment de la compilation.

Voici un exemple de requête en syntaxe des méthodes LINQ qui retourne un ensemble de chaînes contenant le mot "Tutorials".

// Ensemble de chaînes
IList<string> stringList = new List<string>() { 
    "Tutoriels C#",
    "Tutoriels VB.NET",
    "Apprendre C++",
    "MVC Tutorials",
    "Java" 
};
// Syntaxe de requête LINQ
var result = stringList.Where(s => s.Contains("Tutorials"));

La figure suivante explique la structure de la syntaxe des méthodes LINQ.

Structure de la syntaxe des méthodes LINQ

Comme illustré ci-dessus, la syntaxe des méthodes inclut les extensions et les expressions lambda. L'extension méthode Where () définie dans la classe Enumerable.

Si vous examinez la signature de l'extension méthode Where, vous verrez que la méthode Where accepte une Delegate predicate Func<Student,bool>。Cela signifie que vous pouvez passer n'importe quelle fonction déléguée acceptant un objet Student en tant que paramètre d'entrée et renvoyant une valeur booléenne, comme illustré ci-dessous. L'expression lambda est utilisée comme délégué transmis à la clause Where. Dans la section suivante, nous étudierons les expressions lambda.

Delegate Func dans Where

L'exemple suivant montre comment utiliser la syntaxe des méthodes LINQ avec les ensembles IEnumerable <T>.

// Collection d'étudiants
IList<Student> studentList = new List<Student>() { 
        new Student() { .StudentID = 1, StudentName = "John", Age = 13}
        new Student() { .StudentID = 2, StudentName = "Moin",  Age = 21 }
        new Student() { .StudentID = 3, .StudentName = "Bill", .Age = 18 }
        new Student() { .StudentID = 4, .StudentName = "Ram", .Age = 20},
        new Student() { .StudentID = 5, .StudentName = "Ron", .Age = 15 } 
    };
// La syntaxe de méthode LINQ trouve des étudiants adolescents
var teenAgerStudents = studentList.Where(s => s.Age > 12 Et s.Age < 20)
                                  .ToList<Student>();
// Collection d'étudiants
Dim studentList = New List(Of Student) From {
        New Student() With {.StudentID = 1, .StudentName = "John", .Age = 13}
        New Student() With {.StudentID = 2, .StudentName = "Moin", .Age = 21}
        New Student() With {.StudentID = 3, .StudentName = "Bill", .Age = 18}
        New Student() With {.StudentID = 4, .StudentName = "Ram", .Age = 20},
        New Student() With {.StudentID = 5, .StudentName = "Ron", .Age = 15}
    }
// La syntaxe de méthode LINQ trouve des étudiants adolescents
Dim teenAgerStudents As IList(Of Student) = studentList.Where(Function(s) s.Age > 12 Et s.Age < 20)
                                                       .ToList()

 Points à retenir à se souvenir

  1. Comme son nom l'indique,Syntaxe de méthodeComme appeler une méthode d'extension.

  2. LINQSyntaxe de méthodeAlso appelé syntaxe fluide (syntaxe fluide), car elle permet une série d'appels de méthodes d'extension.

  3. Variable de type implicite-var peut être utilisé pour enregistrer le résultat de la requête LINQ.