Katakanlah Anda memiliki:
List<string> los = new List<string>();
Dalam dunia fungsional yang gila ini kita hidup di zaman sekarang yang mana yang terbaik untuk membuat satu string dengan menggabungkan ini:
String.Join(String.Empty, los.ToArray());
StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));
string disp = los.Aggregate<string>((a, b) => a + b);
atau foreach StringBuilder tua polos
ATAU adakah cara yang lebih baik?
c#
string
performance
functional-programming
maxfridbe
sumber
sumber
Jawaban:
Saya akan memilih opsi A:
Alasan saya adalah karena metode Bergabung ditulis untuk tujuan itu. Bahkan jika Anda melihat Reflector, Anda akan melihat bahwa kode yang tidak aman digunakan untuk benar-benar mengoptimalkannya. Dua lainnya juga BEKERJA, tapi saya pikir fungsi Gabung ditulis untuk tujuan ini, dan saya kira, yang paling efisien. Saya bisa saja salah ...
Sesuai @Nuri YILMAZ tanpa
.ToArray()
, tapi ini. NET 4+:sumber
Jika Anda hanya ingin menggabungkan string maka gunakan string.Concat () alih-alih string.Join ().
sumber
Jika Anda menggunakan .net 4.0 Anda dapat menggunakan cara penyortir:
sumber
String.Join () diimplementasikan cukup cepat, dan karena Anda sudah memiliki koleksi string yang dimaksud, mungkin merupakan pilihan terbaik. Di atas semua itu, teriakan "Saya bergabung dengan daftar string!" Selalu baik.
sumber
sumber
Pilihan saya adalah string. Bergabunglah
Tidak perlu evaluasi lambda dan fungsi sementara yang akan dibuat, lebih sedikit panggilan fungsi, lebih sedikit tumpukan yang mendorong dan muncul.
sumber