Apa cara paling efisien untuk menggabungkan string?
StringBuilder
kasus penggunaan dapat ditemukan di sini .
String.Format
pada steroid. Yang mana, kinerja bijaksana, sedikit lebih lambat di satu liners daripada +
dan String.Concat
, tetapi jauh lebih baik daripada itu, meskipun lebih lambat daripada StringBuilder
, di beberapa panggilan. Secara praktis, perbedaan kinerja sedemikian rupa sehingga, jika saya harus memilih hanya satu cara untuk menggabungkan, saya akan memilih interpolasi string menggunakan $
... Jika dua cara, kemudian tambahkan StringBuilder
ke kotak alat saya. Dengan dua cara itu Anda sudah siap.
String.Join
jawaban di bawah ini tidak melakukan +
keadilan dan, secara praktis, cara yang buruk untuk string concatenate, tetapi kinerja sangat cepat bijaksana. Jawabannya menarik. String.Concat
dan String.Join
keduanya dapat bekerja pada array, tetapi String.Join
sebenarnya lebih cepat. Rupanya, String.Join
cukup canggih dan lebih dioptimalkan daripada String.Concat
, sebagian karena beroperasi mirip dengan StringBuilder
yang menghitung panjang string pertama dan kemudian membangun string yang diuntungkan dari pengetahuan ini menggunakan UnSafeCharBuffer.
String.Join
juga membutuhkan membangun sebuah array yang tampaknya tidak efisien sumber daya kan? ... Ternyata itu +
dan String.Concat
membangun array untuk konstituen mereka. Akibatnya, secara manual membuat array dan memberi makan itu String.Join
relatif lebih cepat ... namun, StringBuilder
masih mengungguli String.Join
dalam setiap cara praktis sementara $
hanya sedikit lebih lambat dan lebih cepat di string panjang ... belum lagi bahwa itu canggung dan jelek untuk digunakan String.Join
jika Anda memiliki untuk membuat array untuk itu di tempat.