Simplifier une expression LINQ (IDE0120)
Propriété | Value |
---|---|
Identificateur de la règle | IDE0120 |
Titre | Simplifier une expression LINQ |
Catégorie | Style |
Sous-catégorie | Règles de code inutiles (préférences relatives au niveau de l’expression) |
Langages applicables | C# et Visual Basic |
Vue d’ensemble
Cette règle signale les expressions LINQ trop complexes, en particulier les expressions qui appellent Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) suivies de l’une des méthodes suivantes :
- Any<TSource>(IEnumerable<TSource>)
- Count<TSource>(IEnumerable<TSource>)
- First<TSource>(IEnumerable<TSource>)
- FirstOrDefault<TSource>(IEnumerable<TSource>)
- Last<TSource>(IEnumerable<TSource>)
- LastOrDefault<TSource>(IEnumerable<TSource>)
- Single<TSource>(IEnumerable<TSource>)
- SingleOrDefault<TSource>(IEnumerable<TSource>)
Ces expressions peuvent être simplifiées en supprimant l’appel à et en appelant à Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) la place une surcharge de Any()
, Count()
, First()
FirstOrDefault()
, Last()
, LastOrDefault()
Single
ou SingleOrDefault()
qui accepte une fonction de prédicat pour filtrer les éléments.
Options
Cette règle n’a pas d’option de style de code associée.
Exemple
// Code with violations.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Where(x => x.Equals("hello")).Any();
// Fixed code.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Any(x => x.Equals("hello"));
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable IDE0120
// The code that's violating the rule is on this line.
#pragma warning restore IDE0120
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.IDE0120.severity = none
Pour désactiver toutes les règles de style de code, définissez la gravité de la catégorie Style
sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour