CA1847: использование string.Contains(char) вместо string.Contains(string) с одиночными символами
Свойство | Значение |
---|---|
Идентификатор правила | CA1847 |
Заголовок | Используйте строку. Содержит(char) вместо строки. Contains(string) с одними символами |
Категория | Производительность |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 8 | Как предложение |
Причина
string.Contains(string)
используется, когда string.Contains(char)
был доступен.
Описание правила
При поиске одного символа использование string.Contains(char)
обеспечивает лучшую производительность, чем string.Contains(string)
.
Устранение нарушений
Обычно правило фиксируется просто с помощью символьного литерала вместо строкового литерала.
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
Этот код можно изменить так, чтобы вместо него использовался символьный литерал.
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
Когда лучше отключить предупреждения
Можно отключить предупреждение из этого правила, если вас не беспокоит влияние вызова поиска на производительность.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по