Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
| 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.