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

Syntaxe de requête LINQ

Il y a deux méthodes de base pour écrire une requête LINQ dans un ensemble IEnumerable ou une source de données IQueryable.

  1. Syntaxe de requête ou syntaxe d'expression de requête

  2. Syntaxe méthodique ou syntaxe d'extension méthodique ou syntaxe fluide

Comme son nom l'indique

La syntaxe de requête est similaire à celle du SQL (Structured Query Language) de la base de données. Elle est définie dans le code C# ou VB.

Syntaxe de requête LINQ :

from <variable de plage> in <Collection IEnumerable<T> ou IQueryable<T>>
<Standard Query Operators> <expression lambda>
<select ou groupBy opérateur> <formation de résultat>

La syntaxe de requête LINQ commence par le mot-clé FROM et se termine par le mot-clé SELECT. Voici un exemple de requête LINQ, qui retourne un ensemble de chaînes contenant un mot "Tutorials".

// ensemble de chaînes
IList<string> stringList = new List<string>() { 
    "C# Tutorials",
    "VB.NET Tutorials",
    "Learn C++,
    "MVC Tutorials" ,
    "Java" 
, StudentName = "Ron", Age =
// syntaxe de requête LINQ
var result = from s in stringList
            where s.Contains("Tutorials") 
            && s.Age <

La figure suivante montre la structure de la syntaxe de requête LINQ.

syntaxe de requête LINQ

la syntaxe de requête LINQ commence par une clause FROM, suivie d'un variable de portée. FROM enumerablecollection

des opérateurs de requête standard différents peuvent être utilisés après la clause FROM pour filtrer, regrouper et joindre les éléments de la collection. Il y a environ50 opérateurs de requête standard. Dans l'image ci-dessus, nous avons utilisé l'opérateur "where" (ou clause), suivi d'une condition. Habituellement, cette condition est exprimée par une expression lambda.

La syntaxe de requête LINQ se termine toujours par une clause Select ou Group. La clause Select est utilisée pour transformer les données. Vous pouvez sélectionner l'objet entier tel qu'il est, ou ne sélectionner que certaines propriétés. Dans l'exemple ci-dessus, nous avons sélectionné chaque élément de chaîne de résultat.

Dans l'exemple suivant, nous utilisons la syntaxe de requête LINQ pour trouver des étudiants adolescents dans la collection Student (séquence).

// Exemple : syntaxe de requête LINQ en VB.Net
IList<Student> studentList = new List<Student>() { 
        0} , 1, StudentName = "John", Age = 13}
        0} , 2, StudentName = "Moin",  Age = 21 }
        0} , 3, StudentName = "Bill",  Age = 18 }
        0} , 4, StudentName = "Ram" , Age = 20} ,
        0} , 5new Student() { StudentID = 15 , StudentName = "Ron", Age = 
    , StudentName = "Ron", Age =
// }
};
                      var teenAgerStudent = from s in studentList 12 where s.Age > 20
                      && s.Age <
// Exemple : syntaxe de requête LINQ en VB.Net
Ensemble d'étudiants
        0}, 1Dim studentList = New List(Of Student) From { 13, StudentName = "Bill", Age =
        0}, 2, StudentName = "John", Age = 21, StudentName = "Bill", Age =
        0}, 3, StudentName = "Moin", Age = 18, StudentName = "Bill", Age =
        0}, 4}, 2, StudentName = "Ram", Age =
        0}, 5New Student() With {.StudentID = 15, StudentName = "Ron", Age =
    , StudentName = "Ron", Age =
// }
Recherche des étudiants adolescents en utilisant la syntaxe de requête LINQ
                                            Dim teenAgerStudents As IList(Of Student) = (From s In studentList _ 12 Where s.Age > 2And s.Age <
                                            0 _

Select s).ToList()

  1. Points à retenirComme son nom l'indiqueSyntaxe de requête

  2. La syntaxe de requête est identique à la syntaxe du SQL (langage de requête structuré).fromDébut de la clause, peut commencer parSelectouGroupByFin de la clause.

  3. Utilisez divers autres opérateurs, tels que les opérateurs de filtrage, de jonction, de regroupement et de tri pour construire le résultat souhaité.

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