maksud Anda string combindedString = string.Join (",", myList.ToArray ());
sawe
2
Argumen '2': tidak dapat dikonversi dari 'System.Collections.Generic.List <string>' ke 'string []'
Ash
9
Saya menggunakan ini baru-baru ini, itu berhasil - hanya menghilangkan .ToArray ()
Adrian K
3
@AdrianK Anda benar karena. Net 4.0 menambahkan kemampuan untuk melewatkan setiap IEnumerable <string>. Namun 4.0 dirilis pada April 2010, sebelum pertanyaan dan jawaban ini diposting jadi mungkin orang-orang di sini belum menyadarinya (selain beberapa di bawah)
Andrew Steitz
Untuk vb.net, Dim combindedString As String = String.Join (",", myList.ToArray ())
PartTimeNerd
55
Saya akan pergi dengan firasat saya dan menganggap Anda ingin menyatukan hasil dari memanggil ToStringsetiap elemen dari daftar.
The .ToString()metode untuk referensi jenis biasanya sembuh kembali keSystem.Object.ToString() kecuali Anda menimpanya di tipe turunan (mungkin menggunakan metode ekstensi untuk built-in jenis). Perilaku default untuk metode ini adalah untuk menampilkan nama tipe yang dipanggil. Jadi yang Anda lihat adalah perilaku yang diharapkan.
Anda dapat mencoba sesuatu seperti string.Join(", ", myList.ToArray());untuk mencapai ini. Ini langkah tambahan, tetapi bisa dimasukkan ke dalam metode ekstensi System.Collections.Generic.List<T>untuk membuatnya sedikit lebih mudah. Sesuatu seperti ini:
(Perhatikan bahwa ini adalah kode bebas dan tidak teruji. Saat ini saya tidak memiliki kompiler yang berguna. Jadi, Anda ingin sedikit bereksperimen dengannya.)
itu berfungsi ketika saya menyebutnya bukan ToString atau menjalankannya dengan parameter generik. Tapi saya suka ide Anda menggunakan metode ekstensi :)
IAdapter
4
Sulit dikatakan, tetapi mungkin Anda mencari sesuatu seperti:
var myString =String.Join(String.Empty, myList.ToArray());
Ini secara implisit akan memanggil metode ToString () pada setiap item dalam daftar dan menyatukannya.
Jika Anda mencari untuk mengubah item dalam daftar menjadi string panjang yang besar, lakukan ini: String.Join("", myList). Beberapa versi kerangka kerja yang lebih lama tidak memungkinkan Anda untuk melewatkan IEnumerable sebagai parameter kedua, jadi Anda mungkin perlu mengubah daftar Anda menjadi sebuah array dengan memanggil .ToArray ().
Jawaban:
Mungkin Anda sedang berusaha melakukannya
Anda dapat mengganti "," dengan apa yang ingin Anda pisahkan elemen dalam daftar.
Sunting : Seperti disebutkan dalam komentar yang juga bisa Anda lakukan
Referensi:
sumber
Saya akan pergi dengan firasat saya dan menganggap Anda ingin menyatukan hasil dari memanggil
ToString
setiap elemen dari daftar.sumber
Anda bisa menggunakan
string.Join
:Hasilnya adalah:
Sebagai alternatif
Environment.NewLine
, Anda dapat menggantinya dengan pemisah garis berbasis string yang Anda pilih.sumber
Jika Anda menginginkan sesuatu yang sedikit lebih kompleks daripada gabung sederhana, Anda dapat menggunakan LINQ misalnya
Akan mengambil ["A", "B", "C"] dan menghasilkan "(a) (b) (c)"
sumber
String.Join(" ", myList)
atauString.Join(" ", myList.ToArray())
. Argumen pertama adalah pemisah antara substring.Bergantung pada versi .NET Anda, Anda mungkin perlu menggunakan ToArray () pada daftar terlebih dahulu ..
sumber
Anda punya
List<string>
- jadi jika Anda ingin mereka disatukan, kira-kira seperti ituakan bekerja (setidaknya dalam. NET 4.0). Parameter pertama adalah pembatas. Jadi Anda juga bisa koma-delimit dll.
Anda mungkin juga ingin melihat menggunakan StringBuilder untuk melakukan menjalankan penggabungan, daripada membentuk daftar.
sumber
The
.ToString()
metode untuk referensi jenis biasanya sembuh kembali keSystem.Object.ToString()
kecuali Anda menimpanya di tipe turunan (mungkin menggunakan metode ekstensi untuk built-in jenis). Perilaku default untuk metode ini adalah untuk menampilkan nama tipe yang dipanggil. Jadi yang Anda lihat adalah perilaku yang diharapkan.Anda dapat mencoba sesuatu seperti
string.Join(", ", myList.ToArray());
untuk mencapai ini. Ini langkah tambahan, tetapi bisa dimasukkan ke dalam metode ekstensiSystem.Collections.Generic.List<T>
untuk membuatnya sedikit lebih mudah. Sesuatu seperti ini:(Perhatikan bahwa ini adalah kode bebas dan tidak teruji. Saat ini saya tidak memiliki kompiler yang berguna. Jadi, Anda ingin sedikit bereksperimen dengannya.)
sumber
Sulit dikatakan, tetapi mungkin Anda mencari sesuatu seperti:
Ini secara implisit akan memanggil metode ToString () pada setiap item dalam daftar dan menyatukannya.
sumber
String.Concat()
akan mencapai hal yang sama lebih baik.Jika Anda mencari untuk mengubah item dalam daftar menjadi string panjang yang besar, lakukan ini:
String.Join("", myList)
. Beberapa versi kerangka kerja yang lebih lama tidak memungkinkan Anda untuk melewatkan IEnumerable sebagai parameter kedua, jadi Anda mungkin perlu mengubah daftar Anda menjadi sebuah array dengan memanggil .ToArray ().sumber
Jawaban langsung untuk pertanyaan Anda adalah
String.Join
seperti yang disebutkan orang lain.Namun, jika Anda memerlukan beberapa manipulasi, Anda dapat menggunakan
Aggregate
:sumber
Metode ini membantu saya ketika mencoba untuk mengambil data dari File Teks dan menyimpannya di Array kemudian Tetapkan ke string yang tersedia.
Semoga dapat membantu Seseorang !!!!
sumber
Ini sepertinya bekerja untuk saya.
sumber
semua jawaban di atas TIDAK bekerja untuk daftar bersarang.
sumber