Condividi tramite


CA1847: Usare String.Contains(char) anziché String.Contains(string) con caratteri singoli

Proprietà valore
ID regola CA1847
Title Usare String.Contains(char) anziché String.Contains(string) con caratteri singoli
Categoria Prestazioni
La correzione causa un'interruzione o meno Non causa un'interruzione
Abilitato per impostazione predefinita in .NET 8 Come suggerimento

Causa

String.Contains(string) viene utilizzato quando String.Contains(char) è disponibile.

Descrizione regola

Quando si cerca un singolo carattere, String.Contains(char) offre prestazioni migliori rispetto a String.Contains(string).

Come correggere le violazioni

In generale, la regola viene risolta semplicemente usando un valore letterale char anziché un valore letterale stringa.

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

Questo codice può essere modificato per usare invece un valore letterale char.

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

Quando eliminare gli avvisi

Eliminare una violazione di questa regola se non si è interessati all'impatto sulle prestazioni della chiamata di ricerca in questione.

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedi anche