CodeQL documentation

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