Jawaban ini menunjukkan penggunaan LINQ ( Aggregate) seperti yang diminta dalam pertanyaan dan tidak dimaksudkan untuk penggunaan sehari-hari. Karena ini tidak menggunakan StringBuilderitu akan memiliki kinerja yang mengerikan untuk urutan yang sangat lama. Untuk penggunaan kode biasa String.Joinseperti 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 Aggregatemenggunakan varian gunakan StringBuilderdiusulkan dalam komentar oleh CodeMonkeyKing yang akan menjadi kode yang sama seperti biasa String.Jointermasuk kinerja yang baik untuk sejumlah besar objek:
var res = words.Aggregate(
new StringBuilder(),
(current, next) => current.Append(current.Length == 0? "" : ", ").Append(next))
.ToString();