CA1847 : Utiliser String.Contains(char) au lieu de String.Contains(string) avec des caractères uniques

Propriété Valeur
Identificateur de la règle CA1847
Titre Utilisez String.Contains(char) au lieu de String.Contains(string) avec des caractères uniques
Catégorie Performance
Le correctif a un effet disruptif ou non disruptif Sans rupture
Activé par défaut dans .NET 10 À titre de suggestion
Langues applicables C# et Visual Basic

Cause

String.Contains(string) est utilisé lorsqu’il String.Contains(char) est disponible.

Description de la règle

Lorsque vous recherchez un seul caractère, String.Contains(char) offre de meilleures performances que String.Contains(string).

Comment corriger les violations

En général, la règle est réglée simplement à l’aide d’un littéral de caractère au lieu d’un littéral de chaîne de caractères.

public bool ContainsLetterI()
{
    var testString = "I am a test string.";
    return testString.Contains("I");
}
Public Function ContainsLetterI() As Boolean
    Dim testString As String = "I am a test string."
    Return testString.Contains("I")
End Function

Ce code peut être modifié pour utiliser un caractère littéral à la place.

public bool ContainsLetterI()
{
    var testString = "I am a test string.";
    return testString.Contains('I');
}
Public Function ContainsLetterI() As Boolean
    Dim testString As String = "I am a test string."
    Return testString.Contains("I"c)
End Function

Quand supprimer les avertissements

Supprimez une violation de cette règle si vous ne vous préoccupez pas de l’impact sur les performances de l’appel de recherche en question.

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 CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847

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.CA1847.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi