Adakah cara untuk mengambil List dan mengubahnya menjadi string yang dipisahkan koma?
Saya tahu saya bisa mengulang dan membangunnya, tapi entah bagaimana menurut saya beberapa dari kalian cara yang lebih keren untuk melakukannya?
Saya benar-benar ingin mempelajari jenis 'trik' ini, jadi harap jelaskan atau tautkan ke dokumen tentang metode yang Anda gunakan.
c#
collections
mrblah
sumber
sumber
Solusi sederhana adalah
Saya baru saja menggunakannya dalam kode saya, bekerja secara funtastic.
sumber
sumber
Untuk sekitar satu trilyun solusi untuk versi yang sedikit lebih rumit dari masalah ini - banyak di antaranya lambat, buggy, atau bahkan tidak dapat dikompilasi - lihat komentar di artikel saya tentang hal ini:
http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx
dan komentar StackOverflow:
Tantangan Eric Lippert "quibbling koma", jawaban terbaik?
sumber
Untuk kesejukan ekstra, saya akan menjadikan ini metode ekstensi di IEnumerable <T> sehingga berfungsi pada IEnumerable mana pun:
Gunakan sebagai berikut:
sumber
return string.Join(delim, self);
Tampaknya cukup cepat.
sumber
Entri "pintar" saya:
Hanya belum menemukan cara menambahkan koma secara kondisional.
sumber
Select
dengan efek samping di lambda. Dalam hal ini Anda bahkan tidak menggunakany
, jadi AndaSelect
pada dasarnya hanya aforeach
- jadi tulis seperti itu.Select
sepertiforeach
melewati "menarik" dan menjadi, yah, "penyalahgunaan". Pendekatan yang lebih menarik di sini akan digunakanEnumerable.Aggregate
denganStringBuilder
sebagai nilai benih - coba itu.Anda dapat menggunakan, perpustakaan System.Linq; Ini lebih efisien:
sumber