CA1860 : Éviter d’utiliser la méthode d’extension 'Enumerable.Any()'
Propriété | Value |
---|---|
Identificateur de la règle | CA1860 |
Titre | Éviter d’utiliser la méthode d’extension 'Enumerable.Any()' |
Catégorie | Performances |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | À titre de suggestion |
Cause
Enumerable.Any est appelé sur un type qui a un Length
, Count
ou IsEmpty
une propriété.
Description de la règle
Pour déterminer si un type de collection a des éléments, il est plus efficace et plus clair d’utiliser les propriétés Length
, Count
ou IsEmpty
(si possible) que d’appeler la méthode Enumerable.Any.
Any()
, qui est une méthode d’extension, utilise la requête intégrée au langage (LINQ). Il est plus efficace de s’appuyer sur les propres propriétés de la collection, et cela clarifie également l’intention.
Notes
Cette règle est similaire à CA1827 : N’utilisez pas Count()/LongCount() quand Any() peut être utilisé. Toutefois, cette règle s’applique à la méthode Linq Count()
, tandis que cette règle suggère d’utiliser la Count
propriété.
Comment corriger les violations
Remplacez un appel à Any() par un appel à la propriété de la collection Length
, Count
ou IsEmpty
.
Exemple
L’extrait de code suivant montre une violation de CA1860 :
bool HasElements(string[] strings)
{
return strings.Any();
}
Function HasElements(strings As String()) As Boolean
Return strings.Any()
End Function
L’extrait de code suivant corrige la violation :
bool HasElements(string[] strings)
{
return strings.Length > 0;
}
Function HasElements(strings As String()) As Boolean
Return strings.Length > 0
End Function
Quand supprimer les avertissements
Vous pouvez supprimer cet avertissement sans risque, si les performances ne sont pas un problème.
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 CA1860
// The code that's violating the rule is on this line.
#pragma warning restore CA1860
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.CA1860.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.