samedi 1 mars 2025

LINQ



🔷 LINQ — Language Integrated Query

LINQ permet d’écrire des requêtes sur des collections de données (tableaux, listes, bases de données, XML…) de manière simple, lisible et typée.

LINQ signifie : Language Integrated Query
👉 Tu peux l’utiliser avec : List, Array, Dictionary, DataTable, Entity Framework, etc.


✅ Syntaxe de base

🎯 Exemple classique

int[] nombres = { 1, 2, 3, 4, 5, 6 };

var pairs = from n in nombres
            where n % 2 == 0
            select n;

foreach (var n in pairs)
    Console.WriteLine(n);

Affiche : 2, 4, 6


✌️ Deux syntaxes possibles

1. Syntaxe de requête (style SQL)

var result = from item in collection
             where condition
             select item;

2. Syntaxe par méthode (fluent)

var result = collection.Where(item => condition)
                       .Select(item => transformation);

Les deux donnent le même résultat, choisis selon ton style ou contexte.


🔧 Fonctions les plus utilisées en LINQ

Voici une petite boîte à outils LINQ pratique :

Méthode Description Exemple
Where Filtrer .Where(x => x > 5)
Select Projeter (transformer) .Select(x => x * 2)
OrderBy / OrderByDescending Trier .OrderBy(x => x.Nom)
First / FirstOrDefault Premier élément (ou null) .FirstOrDefault()
Any / All Test sur des éléments .Any(x => x > 0)
Count Compter .Count(x => x % 2 == 0)
GroupBy Grouper .GroupBy(x => x.Catégorie)
Distinct Uniques .Distinct()
ToList() / ToArray() Convertir le résultat .ToList()

🎯 Exemple plus avancé

var personnes = new List<Personne>
{
    new Personne { Nom = "Alice", Age = 30 },
    new Personne { Nom = "Bob", Age = 22 },
    new Personne { Nom = "Charlie", Age = 30 }
};

var resultats = personnes
    .Where(p => p.Age >= 25)
    .OrderBy(p => p.Nom)
    .Select(p => new { p.Nom, p.Age });

foreach (var p in resultats)
{
    Console.WriteLine($"{p.Nom} - {p.Age}");
}

📁 Cas d'utilisation courants

  • 🔍 Rechercher dans une collection

  • 📊 Regrouper et trier des données

  • 💡 Créer des vues temporaires sans nouvelle classe (type anonyme)

  • 📄 Manipuler des fichiers XML (LINQ to XML)

  • 🧮 Interroger une base de données (LINQ to SQL / LINQ to Entities)



Aucun commentaire:

Enregistrer un commentaire

LINQ Lượt xem: