C# Language Requêtes linguistiques intégrées (LINQ)


Exemple

//Example 1
int[] array = { 1, 5, 2, 10, 7 };

// Select squares of all odd numbers in the array sorted in descending order
IEnumerable<int> query = from x in array
                         where x % 2 == 1
                         orderby x descending
                         select x * x;
// Result: 49, 25, 1

Exemple d'article de Wikipédia sur C # 3.0, sous-section LINQ

L'exemple 1 utilise une syntaxe de requête conçue pour ressembler aux requêtes SQL.

//Example 2
IEnumerable<int> query = array.Where(x => x % 2 == 1)
    .OrderByDescending(x => x)
    .Select(x => x * x);
// Result: 49, 25, 1 using 'array' as defined in previous example

Exemple d'article de Wikipédia sur C # 3.0, sous-section LINQ

L'exemple 2 utilise la syntaxe de la méthode pour obtenir le même résultat que l'exemple 1.

Il est important de noter que, en C #, la syntaxe de requête LINQ est un sucre syntaxique pour la syntaxe de la méthode LINQ. Le compilateur traduit les requêtes en appels de méthode au moment de la compilation. Certaines requêtes doivent être exprimées dans la syntaxe de la méthode. De MSDN - "Par exemple, vous devez utiliser un appel de méthode pour exprimer une requête qui récupère le nombre d'éléments correspondant à une condition spécifiée."