C# string immutability: when to use StringBuilder vs interpolation

C# Language Interview Q&A November 13, 2026 csharp

Every "change" to a string creates a new object.

csharp
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// ======================================================================
// Q: Strings are immutable. When do you use StringBuilder?
//
// Every "change" to a string creates a new object. In a loop with many appends:
// StringBuilder. For a few appends, interpolation ($"..."), which has been
// optimized since .NET 6. For case-insensitive comparison: string.Equals(a, b,
// StringComparison.OrdinalIgnoreCase), not ToLower().
// ======================================================================

var sb = new StringBuilder();
foreach (var line in order.Lines)
    sb.Append(line.Sku).Append(';').Append(line.Quantity).AppendLine();
var csv = sb.ToString();