Kaedah OrderBy dalam pertanyaan LINQ membolehkan pengisihan data yang cekap. Tetapi bagaimana jika anda ingin menentukan parameter pengisihan secara dinamik berdasarkan parameter? Artikel ini akan membimbing anda melalui ini.
Andaikan anda mempunyai senarai objek Pelajar dan ingin mengisihnya mengikut sifat Alamatnya:
<code class="language-csharp">List<Student> existingStudents = new List<Student> { new Student {...}, new Student {...} }; List<Student> orderbyAddress = existingStudents.OrderBy(c => c.Address).ToList();</code>
Walau bagaimanapun, ini mengeraskan pesanan alamat.
Untuk menentukan parameter pengisihan secara dinamik, anda boleh memanfaatkan pantulan untuk membina pepohon ungkapan:
<code class="language-csharp">public static IQueryable<T> OrderBy<T>(this IQueryable<T> source, string orderByProperty, bool desc) { // ... (此处应提供答案中的代码片段) }</code>
Kini anda boleh menggunakan kaedah sambungan OrderBy dengan parameter dinamik:
<code class="language-csharp">string param = "City"; List<Student> orderbyCity = existingStudents.OrderBy("City", true).ToList(); // 降序排序</code>
Pendekatan ini memberikan fleksibiliti untuk menentukan parameter pengisihan semasa masa jalan, membenarkan pengisihan yang boleh disesuaikan dan dinamik dalam pertanyaan LINQ.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Data Secara Dinamik dalam LINQ Menggunakan Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!