- 1/5: Présentation de Linq
- 2/5: Méthodes conditionnelles
- 3/5: Méthodes de recherche
- 4/5: Méthodes de tri
- 5/5: Méthodes de calcul
Dans cette partie, je vais vous présenter les méthodes vous permettant d’effectuer des recherches au sein de vos listes, tableaux et collections. Linq en propose 3 sortes :
- celles qui retournent plusieurs résultats
- celles qui retournent un seul résultat mais qui lèvent une exception si ce dernier n’est pas trouvé
- celles qui retournent un seul résultat ou une valeur par défaut s’il n’est pas trouvé
La méthode ci-dessous permet de retourner plusieurs résultats. Un ensemble vide est renvoyé si aucun résultat n’est trouvé.
- Where(condition): Retourne tous les résultats respectant une condition.
IEnumerable cls = clients.Where(c => c.City == "Lille");
Les méthodes ci-dessous retourne un seul résultat. Si aucun résultat n’est trouvé, une exception est levée.
- ElementAt(int): Retourne l’élément ayant l’index précisé.
Client client = clients.ElementAt(3);
- Single(): Retourne l’élément de la liste.
Client client = clients.Single();
- Single(condition): Retourne l’élément de la liste respectant une condition.
Client client = clients.Single(c => c.Id == 3);
[notice]Les méthodes Single() lèvent une exception supplémentaire si plusieurs résultats existent.[/notice]
- First(): Retourne le premier élément disponible.
Client client = clients.First(); Client client = clients.Where(c => c.Id == 3).First();
- First(condition): Retourne le premier élément respectant une condition. Plusieurs résultats possibles.
Client client = clients.First(c => c.Id == 3);
- Last(): Retourne le dernier élément disponible.
Client client = clients.Last(); Client client = clients.Where(c => c.Id == 3).Last();
- Last(condition): Retourne le dernier élément respectant une condition. Plusieurs résultats possibles.
Client client = clients.Last(c => c.Id == 3);
Les méthodes ci-dessous retourne également un seul résultat. Si aucun résultat n’est trouvé, une valeur par défaut pouvant être définie est alors renvoyée:
- DefaultIfEmpty(objet): Détermine l’objet à retrouver si les méthodes FirstOrDefault(), LastOrDefault(), SingleOrDefault() et ElementAtOrDefault() ne retournent aucun résultat. Par défaut, cette méthode renvoi null.
Les méthodes ci-dessus renverront l’objet défini via la méthode définie par DefaultIfEmpty() si aucun résultat n’est trouvé.
- ElementAtOrDefault(index): Retourne l’élément ayant l’index précisé.
Client client = clients.ElementAtOrDefault(3);
- SingleOrDefault(): Retourne le seul élément de la liste ou la valeur par défaut s’il est nul.
Client client = clients.SingleOrDefault();
- SingleOrDefault(condition): Retourne l’élément respectant une condition.
Client client = clients.SingleOrDefault(c => c.Id == 3);
[notice]Les méthodes SingleOrDefault() lèvent une exception supplémentaire si plusieurs résultats sont trouvés.[/notice]
- FirstOrDefault(): Retourne le premier élément disponible ou la valeur par défaut.
Client client = clients.FirstOrDefault(); Client client = clients.Where(c => c.Id == 3).FirstOrDefault();
- FirstOrDefault(condition): Retourne le premier élément respectant une condition ou la valeur par défaut.
Client client = clients.FirstOrDefault(c => c.Id == 3);
- LastOrDefault(): Retourne le dernier élément disponible ou la valeur par défaut.
Client client = clients.LastOrDefault(); Client client = clients.Where(c => c.Id == 3).LastOrDefault();
- LastOrDefault(condition) Retourne le dernier élément respectant une condition ou la valeur par défaut.
Client client = clients.LastOrDefault(c => c.Id == 3);
Dans le prochain article, je vous parlerai des méthodes de tri sur les listes (ordonner les résultats, limiter les résultats, etc…)