CA1847: Use 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 |
A correção está quebrando ou não quebrando | Sem quebra |
Habilitado por padrão no .NET 8 | Como sugestão |
Motivo
String.Contains(string)
é utilizado quando String.Contains(char)
disponível.
Descrição da regra
Ao procurar por um único personagem, String.Contains(char)
oferece melhor desempenho do que String.Contains(string)
.
Como corrigir violações
Em geral, a regra é corrigida simplesmente usando um literal de caracteres 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
Este código pode ser alterado para usar um literal de caracteres em vez disso.
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 desta regra se não estiver preocupado com o impacto no desempenho da invocação de pesquisa em questão.
Suprimir um aviso
Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar 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 de um arquivo, pasta ou projeto, defina sua gravidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.