Avoid StartsWith or EndsWith with one character
このページは日本語には対応しておりません。随時翻訳に取り組んでいます。
翻訳に関してご質問やご意見ございましたら、
お気軽にご連絡ください。
ID: csharp-best-practices/strings-with-one-char
Language: C#
Severity: Warning
Category: Performance
Description
This rule is designed to ensure that you use the most efficient methods for string comparison in C#. When using the StartsWith
or EndsWith
methods with a single character, the performance can be significantly reduced compared to using the indexer with the first or last index. This is because these methods are designed to work with substrings, not single characters, and therefore involve unnecessary overhead when used in this way.
The importance of this rule lies in writing efficient and performant code. In large-scale applications, using inefficient methods for string comparison can lead to noticeable performance issues. Therefore, it’s crucial to use the appropriate methods for each specific use-case.
Learn More
Non-Compliant Code Examples
using System.Xml;
class MyClass {
public static void processString(string s)
{
bool r1 = s.StartsWith("/");
bool r2 = s.EndsWith("/");
data.Contains("\\n");
}
}
Compliant Code Examples
using System.Xml;
class MyClass {
public static void processString(string s)
{
bool r1 = s.StartsWith('/');
bool r2 = s.EndsWith('/');
bool r3 = s.EndsWith("/", StringComparison.InvariantCulture);
}
}