Concatenazione di stringhe e String Builder. Prestazione

Ho una situazione in cui ho bisogno di concatenare più string per formare un id di una class. Fondamentalmente sto semplicemente collegando un elenco per ottenere i valori ToString degli oggetti e quindi concatenandoli.

foreach (MyObject o in myList) result += o.ToString(); 

Non ci si aspetta che la lista contenga più di 5 elementi (anche se potrebbe essere un caso molto, molto marginale) e di solito avrà da 1 a 3 elementi, essendo comune che abbia solo uno o due.

Quale sarebbe più prestazioni, mantenendo la concatenazione o usando un StringBuilder?

 StringBuilder bld = new StringBuilder() foreach (MyObject o in myList) bld.Append(o.ToString()); 

Non sono sicuro che la creazione di StringBuilder richiederà più tempo della concatenazione standard per il caso più comune.

Questo è pigro, gli oggetti sulla lista non cambiano una volta creati così l’id viene costruito pigramente una volta quando viene chiamato.

Come nota a margine … Devo usare una matrice fissa invece di una lista? Potrei ottenere prestazioni o miglioramento della memoria se lo faccio? (L’elenco è utilizzato solo come object IEnumerable)

Una visione più generale della domanda potrebbe essere, quante stringhe sono sufficienti per interrompere la concatenazione e iniziare a build?

Dovrei anche preoccuparmi di testare lo scenario?

 if (myList.Count > 4) ConcatWithStringBuilder(myList);