Share via


Simplifier une expression LINQ

Cette refactorisation s’applique à :

  • C#

Quoi : Refactorise les instances de SomeEnumerableType.Where(<LambdaExpression>).Single() en SomeEnumerable.Single(<LambdaExpression>) pour Enumerable.Single() ainsi que les méthodes Enumerable suivantes : SingleOrDefault(), Last(), LastOrDefault(), Any(), Count(), First() et FirstOrDefault().

Quand : toutes les instances où la méthode appelle Single(), SingleOrDefault() et ainsi de suite, n’a pas d’arguments et est précédée d’une expression Where(). L’entrée de l’expression Where() ne peut pas être construite en tant qu’arborescence d’expression.

Pourquoi : la suppression de l’appel inutile à Enumerable pour la méthode .Where() améliore la lisibilité et, dans certains cas, les performances (voir les remarques).

Procédures

  1. Placez votre curseur dans l’instance SomeEnumerableType.Where(<LambdaExpression>).Single() dans Visual Studio.

  2. Appuyez sur Ctrl+. pour déclencher le menu Actions rapides et refactorisations.

  3. Sélectionnez Simplifier l’expression LINQ.

    Convert typeof to nameof

Remarques

Dans certains cas, cette refactorisation peut réduire les performances. Les opérations LINQ sur List<T> et T[] ne sont pas optimisées dans ce cas et entraînent une baisse des performances.

Voir aussi