Quando in C# si ha bisogno di concatenare stringhe, la miglior cosa è l’utilizzo della classe StringBuilder.
Le stringhe in C#, infatti, non possono essere modificate perché sono immutabili.
Quando le si va a modificare, quindi viene creato un nuovo oggetto stringa e sostituito al precedente.
Questo processo prende un notevole spazio in termini di tempo.
Per ovviare a questo si può usare, appunto, la classe StringBuilder.
Vediamo un esempio di come si farebbe un semplice processo usanto String:
static void Main(string[] args)
{
string str = "";
for (int j = 0; j < 10000; j++)
{
str += Convert.ToString(j);
}
Console.WriteLine(str);
}
Possiamo notare come il processo prenda qualche secondo prima di emettere l’output.
Ora invece vediamo lo stesso meccanismo, ma utilizzando StringBuilder:
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
for (int j = 0; j < 10000; j++)
{
sb.Append(j);
}
Console.WriteLine(sb.ToString());
}
Come possiamo notare se mandiamo in esecuzione, la velocità del programma è notevolmente maggiore e l’output esce istantaneamente.
Ovviamente questo è solamente un esempio, se applicato a grande applicazioni StringBuilder può dare benefici davvero enormi.


