CA1858 : Utiliser StartsWith au lieu d’IndexOf
Propriété | Value |
---|---|
Identificateur de la règle | CA1858 |
Titre | Utiliser StartsWith à la place d’IndexOf |
Catégorie | Performances |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | À titre de suggestion |
Cause
String.IndexOf est appelé et son résultat est comparé à zéro.
Description de la règle
Il est plus efficace et plus clair d’appeler String.StartsWith que d’appeler String.IndexOf et de comparer le résultat à zéro pour déterminer si une chaîne commence par un préfixe donné.
IndexOf
recherche la chaîne entière, tandis que StartsWith
compare uniquement au début de la chaîne.
Comment corriger les violations
Remplacez l’appel à String.IndexOf par un appel à String.StartsWith.
Exemple
L’extrait de code suivant montre une violation de CA1858 :
bool M(string s)
{
return s.IndexOf("abc") == 0;
}
Function M(s As String) As Boolean
Return s.IndexOf("abc") = 0
End Function
L’extrait de code suivant corrige la violation :
bool M(string s)
{
return s.StartsWith("abc");
}
Function M(s As String) As Boolean
Return s.StartsWith("abc")
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 CA1858
// The code that's violating the rule is on this line.
#pragma warning restore CA1858
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.CA1858.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.