Jawaban ini menunjukkan penggunaan LINQ ( Aggregate
) seperti yang diminta dalam pertanyaan dan tidak dimaksudkan untuk penggunaan sehari-hari. Karena ini tidak menggunakan StringBuilder
itu akan memiliki kinerja yang mengerikan untuk urutan yang sangat lama. Untuk penggunaan kode biasa String.Join
seperti yang ditunjukkan pada jawaban lainnya
Gunakan kueri agregat seperti ini:
string[] words = { "one", "two", "three" };
var res = words.Aggregate(
"", // start with empty string to handle empty list case.
(current, next) => current + ", " + next);
Console.WriteLine(res);
Output ini:
, satu dua tiga
Agregat adalah fungsi yang mengambil koleksi nilai dan mengembalikan nilai skalar. Contoh dari T-SQL termasuk min, max, dan jumlah. Baik VB dan C # memiliki dukungan untuk agregat. Baik agregat dukungan VB dan C # sebagai metode ekstensi. Menggunakan notasi titik, seseorang cukup memanggil metode pada objek IEnumerable .
Ingat bahwa permintaan agregat dieksekusi segera.
Informasi lebih lanjut - MSDN: Kueri Agregat
Jika Anda benar-benar ingin Aggregate
menggunakan varian gunakan StringBuilder
diusulkan dalam komentar oleh CodeMonkeyKing yang akan menjadi kode yang sama seperti biasa String.Join
termasuk kinerja yang baik untuk sejumlah besar objek:
var res = words.Aggregate(
new StringBuilder(),
(current, next) => current.Append(current.Length == 0? "" : ", ").Append(next))
.ToString();