Simplifier l’expression LINQ (IDE0120)
Propriété | Valeur |
---|---|
Identificateur de la règle | IDE0120 |
Titre | Simplifier l’expression LINQ |
Catégorie | Style |
sous-catégorie | Règles de code inutiles (préférences au niveau de l’expression) |
langues applicables | C# et Visual Basic |
Aperçu
Cette règle signale des expressions LINQ trop complexes, en particulier des 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 à Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) et en appelant plutôt 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 aucune 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 souhaitez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez 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 d’un fichier, d’un dossier ou d’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 d’analyse du code.