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

Proprietà valore
ID regola CA1847
Title Usare la stringa. Contains(char) anziché string. Contains(string) con caratteri singoli
Categoria Prestazioni
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 Come suggerimento

Causa

string.Contains(string) viene utilizzato quando string.Contains(char) era disponibile.

Descrizione regola

Quando si cerca un singolo carattere, l'uso string.Contains(char) di 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