Qual è il modo più efficiente per concatenare le stringhe?
StringBuilder
casi d'uso sono disponibili qui .
String.Format
sugli steroidi. Il che, per quanto riguarda le prestazioni, è leggermente più lento di una linea rispetto +
e String.Concat
, ma molto meglio di quelli, sebbene più lento di StringBuilder
, a più chiamate. In pratica, le differenze di prestazioni sono tali che, se dovessi scegliere un solo modo per concatenare, sceglierei interpolazioni di stringhe usando $
... Se due modi, quindi aggiungo StringBuilder
alla mia casella degli strumenti. Con questi due modi sei pronto.
String.Join
risposta che segue non rende +
giustizia ed è, in pratica, un brutto modo di concatenare le stringhe, ma è sorprendentemente veloce in termini di prestazioni. La risposta è interessante. String.Concat
e String.Join
può agire entrambi su array, ma in String.Join
realtà è più veloce. Apparentemente, String.Join
è piuttosto sofisticato e più ottimizzato di String.Concat
, in parte perché funziona in modo simile al fatto StringBuilder
che calcola prima la lunghezza della stringa e quindi costruisce la stringa che beneficia di questa conoscenza utilizzando UnSafeCharBuffer.
String.Join
richiede anche la costruzione di un array che sembra inefficace in termini di risorse, giusto? ... Scoprilo +
e String.Concat
costruisci comunque array per i loro componenti. Di conseguenza, creare manualmente un array e alimentarlo String.Join
è relativamente più veloce ... tuttavia, StringBuilder
sovraperforma String.Join
in quasi tutti i modi pratici mentre $
è solo leggermente più lento e molto più veloce a stringhe lunghe ... per non parlare del fatto che è scomodo e brutto da usare String.Join
se si ha per creare un array per esso sul posto.