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
Placez votre curseur dans l’instance
SomeEnumerableType.Where(<LambdaExpression>).Single()
dans Visual Studio.Appuyez sur Ctrl+. pour déclencher le menu Actions rapides et refactorisations.
Sélectionnez Simplifier l’expression LINQ.
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour