Apakah ada fungsi dalam C # untuk dengan cepat mengkonversi beberapa koleksi ke string dan memisahkan nilai dengan pembatas?
Sebagai contoh:
List<string> names
-> string names_together = "John, Anna, Monica"
Anda bisa menggunakannya String.Join
. Jika sudah punya List<string>
maka Anda bisa menelepon ToArray
dulu:
List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
Di .NET 4 Anda tidak perlu ToArray
lagi, karena ada kelebihan String.Join
yang membutuhkan IEnumerable<string>
.
Hasil:
John, Anna, Monica
Anda juga dapat melakukan ini dengan LINQ jika mau
var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);
Meskipun saya lebih suka sintaks non-linq dalam jawaban Quartermeister dan saya pikir Aggregate
mungkin melakukan lebih lambat (mungkin lebih banyak operasi penggabungan string).
Aggregate
lebih baik untuk operasi tipe Matematika. Dengan string operasi ini mirip denganfor each
ing dan hanya menambahkan string yang sangat lambat tidak efisien karena Anda membuat string baru untuk setiap item yang ada dalam daftar.