← 返回首页
String concatenation in loop — CodeQL query help documentation CodeQL docs
CodeQL documentation
CodeQL resources

String concatenation in loop

ID: cs/string-concatenation-in-loop Kind: problem Security severity: Severity: recommendation Precision: very-high Tags: - quality - reliability - performance Query suites: - csharp-code-quality.qls - csharp-security-and-quality.qls

Click to see the query in the CodeQL repository

This rule finds code that performs string concatenation in a loop using the + operator. If the enclosing loop in question is executed many times, the use of the + operator may be inefficient.

Recommendation

It is better to use System.Text.StringBuilder for efficiency.

Example

class StringConcatenationInLoop { public static void Main(string[] args) { String numberList = ""; for (int i = 0; i <= 100; i++) { numberList += i + " "; } Console.WriteLine(numberList); } }

Fix With StringBuilder

This code performs the same function as the example except it uses StringBuilder so it is more efficient.

class StringConcatenationInLoopFix { public static void Main(string[] args) { StringBuilder numberList = new StringBuilder(); for (int i = 0; i <= 100; i++) { numberList.Append(i); numberList.Append(" "); } Console.WriteLine(numberList); } }

References