Every "change" to a string creates a new object.
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(); |