LINQ 3/5 : Méthodes de recherche

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…)

Lien Permanent pour cet article : https://www.jbvigneron.fr/parlons-dev/linq-methodes-de-recherche/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Verified by MonsterInsights