LINQ Dinamik: Pemilihan Dinamik Lajur Khusus
Apabila berurusan dengan kelas seperti kelas data
yang disediakan dalam masalah, perlu memilih lajur tertentu semasa operasi LINQ. Tugas ini boleh diselesaikan dengan ekspresi lambda yang dibuat secara dinamik yang diluluskan kepada pilih kaedah.
Atas sebab ini, kaedah createnewstatement
. Ia menerima rentetan yang mengandungi nama medan yang diperlukan sebagai input dan secara dinamik membina ungkapan lambda yang melaksanakan lajur yang diperlukan. Dalam kaedah ini: <:>
Buat parameter ekspresi, menunjukkan objek input yang diluluskan kepada Lambda.
Gunakan Expression.new Kaedah untuk membuat contoh baru - data
kelas. -
Gunakan Expression.split kaedah untuk membahagikan rentetan input ke dalam senarai nama medan tunggal.
Untuk setiap nama medan, gunakan
type.getProperty - Dapatkan atribut yang sepadan dalam kelas kelas.
- Gunakan Expression.Property Nilai asal atribut pengambilan semula.
Gunakan expression.bind Buat ungkapan mengikat untuk menetapkan nilai atribut dalam contoh baru.
- Gunakan Expression.Memberinit ke dalam satu ekspresi inisialisasi tunggal.
Akhirnya, gunakan expression.lambda - Buat ekspresi lambda dan menyusunnya ke dalam jenis komisen yang sesuai.
Dengan kaedah CreateEnewStatement - , anda boleh memanggilnya dengan menggunakan nama medan yang diperlukan sebagai parameter untuk memilih lajur tertentu secara dinamik. Sebagai contoh, pilih field1 dan
field2 - lajur: lajur:
Kaedah ini menyediakan kaedah biasa yang secara dinamik memilih lajur dalam operasi Linq. Atas ialah kandungan terperinci Bagaimanakah LINQ dinamik memilih lajur tertentu di atas permintaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn