CA1847: Usar String.Contains(char) em vez de String.Contains(string) com caracteres únicos
Property | Valor |
---|---|
ID da regra | CA1847 |
Título | Use String.Contains(char) em vez de String.Contains(string) com caracteres únicos |
Categoria | Desempenho |
Correção interruptiva ou sem interrupção | Sem interrupção |
Habilitado por padrão no .NET 9 | Como sugestão |
Causa
String.Contains(string)
é usado quando String.Contains(char)
está disponível.
Descrição da regra
Ao pesquisar um único caractere, String.Contains(char)
oferece melhor desempenho do que String.Contains(string)
.
Como corrigir violações
Em geral, a regra é corrigida simplesmente usando um literal char em vez de um literal de cadeia de caracteres.
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
É possível alterar esse código para usar um literal 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 suprimir avisos
Suprima uma violação dessa regra se você não estiver preocupado com o impacto no desempenho da invocação de pesquisa em questão.
Suprimir um aviso
Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.