Qual è il modo più efficiente per concatenare le stringhe?
StringBuildercasi d'uso sono disponibili qui .
String.Formatsugli 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 StringBuilderalla mia casella degli strumenti. Con questi due modi sei pronto.
String.Joinrisposta 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.Concate String.Joinpuò agire entrambi su array, ma in String.Joinrealtà è più veloce. Apparentemente, String.Joinè piuttosto sofisticato e più ottimizzato di String.Concat, in parte perché funziona in modo simile al fatto StringBuilderche calcola prima la lunghezza della stringa e quindi costruisce la stringa che beneficia di questa conoscenza utilizzando UnSafeCharBuffer.
String.Joinrichiede anche la costruzione di un array che sembra inefficace in termini di risorse, giusto? ... Scoprilo +e String.Concatcostruisci comunque array per i loro componenti. Di conseguenza, creare manualmente un array e alimentarlo String.Joinè relativamente più veloce ... tuttavia, StringBuildersovraperforma String.Joinin 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.Joinse si ha per creare un array per esso sul posto.