Apakah ada metode default yang ditentukan dalam .Net untuk C # untuk menghapus semua elemen dalam daftar yang mana null
?
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
Katakanlah beberapa parameter adalah null
; Saya tidak dapat mengetahui sebelumnya dan saya ingin menghapusnya dari daftar saya sehingga hanya berisi parameter yang bukan null.
Saya tidak tahu metode bawaan apa pun, tetapi Anda bisa menggunakan linq:
sumber
parameterList
sudah menjadi List, karena tidak perlu membuat salinan baru. Dalam hal ini gunakanRemoveAll
metode seperti yang disarankan orang lain.Array
.Metode RemoveAll harus melakukan trik:
sumber
Metode ini
OfType()
akan melewatkan nilai null:sumber
OfType
memilih objek dari tipe tertentu, tidak berpikir bahwa itu tidak akan menyertakannull
nilai ... Jadi saya agak lelah untuk memperkenalkan ini ke dalam kode saya sendiri.sumber
Mudah dan tanpa LINQ:
sumber
List
kelas di sebelahnyaRemoveAll
, jadi saya akan merekomendasikan yang satu untuk kejelasan. Jika kinerja ternyata sangat penting, maka Anda dapat menggunakan pendekatan ini (meskipun saya akan menghapus tanda kurung dan mungkin menambahkan komentar untuk pengembang yang tidak sadar).RemoveAll
menerimaPredicate
, jadi Anda harus menggunakanRemoveAll(x => x == null)
, seperti yang terlihat dalam jawaban diterima dan Mark Bell.Ada opsi sederhana dan elegan lainnya:
Ini akan menghapus semua elemen yang bukan tipe
EmailParameterClass
yang jelas akan menyaring elemen tipe apa punnull
.Berikut tesnya:
sumber
EmailParameterClass
dan hanya memiliki nilai yang sama dengannull
?