CA1847: Gebruik String.Contains(char) in plaats van String.Contains(string) met één tekens

Eigenschap Waarde
Regel-id CA1847
Titel Gebruik String.Contains(char) in plaats van String.Contains(string) met één tekens
Categorie Prestaties
Fix kan brekend of niet-brekend zijn Niet-brekend
Standaard ingeschakeld in .NET 10 Als suggestie
Toepasselijke talen C# en Visual Basic

Oorzaak

String.Contains(string) wordt gebruikt wanneer String.Contains(char) beschikbaar is.

Beschrijving van regel

Wanneer u zoekt naar één teken, String.Contains(char) biedt u betere prestaties dan String.Contains(string).

Hoe schendingen op te lossen

In het algemeen wordt de regel eenvoudig opgelost door een letterlijk teken in plaats van een letterlijke tekenreeks te gebruiken.

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

Deze code kan worden gewijzigd om in plaats daarvan een letterlijke teken te gebruiken.

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

Wanneer waarschuwingen onderdrukken

Onderdrukt een schending van deze regel als u zich geen zorgen maakt over de invloed van de prestaties van de betreffende zoekopdracht.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none

Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.

Zie ook