Saya ingin membagi baris ini:
string line = "First Name ; string ; firstName";
ke dalam serangkaian versi yang dipangkas:
"First Name"
"string"
"firstName"
Bagaimana saya bisa melakukan ini semua dalam satu baris? Yang berikut memberi saya kesalahan "tidak dapat mengubah tipe void":
List<string> parts = line.Split(';').ToList().ForEach(p => p.Trim());
ForEach
bekerja pada contoh saat iniIEnumerable
dan kembalivoid
.Jawaban:
Mencoba
FYI, metode Foreach mengambil sebuah Action (mengambil T dan mengembalikan void) untuk parameter, dan lambda Anda mengembalikan sebuah string sebagai string. Trim mengembalikan sebuah string
Metode ekstensi Foreach dimaksudkan untuk mengubah keadaan objek dalam koleksi. Karena string tidak dapat diubah, ini tidak akan berpengaruh
Semoga membantu; o)
Cédric
sumber
ForEach
bukan merupakan metode ekstensi.The
ForEach
metode tidak kembali apa-apa, sehingga Anda tidak dapat menetapkan bahwa untuk variabel.Gunakan
Select
metode ekstensi sebagai gantinya:sumber
Karena p.Trim () mengembalikan string baru.
Anda perlu menggunakan:
sumber
Atau coba ini:
sumber
Berikut metode ekstensi ...
sumber
coba gunakan Regex:
sumber
Split mengembalikan tipe string []. Tulis metode ekstensi:
Saya menyukai solusi Anda, jadi saya memutuskan untuk menambahkannya dan membuatnya lebih bermanfaat.
sumber
Gunakan Regex
Hasil:
bob
jon
pria
francis
luke
lee
bob
Jelaskan pola [,; \ s]: Cocokkan satu kemunculan baik dari,; atau karakter spasi
sumber