Explain the difference between `string` and `StringBuilder`.

Beginner

Answer

string:

  • Immutable - operations create new string objects
  • Good for few string operations
  • Thread-safe (immutability)
    StringBuilder:
  • Mutable - modifies existing buffer
  • Efficient for multiple string operations
  • Not thread-safe
  • Has capacity management
// Inefficient - creates multiple string objects
string result = "";
for (int i = 0; i < 1000; i++)
{
    result += i.ToString(); // Creates new string each time
}
// Efficient - uses internal buffer
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++)
{
    sb.Append(i); // Modifies existing buffer
}
string result = sb.ToString();