Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan Order Linq Dynamicby pada `iQueryable` dan` ienumerable`?
Gunakan dinamik linq orderby
IQueryable<T>
IEnumerable<T>
Apabila menggunakan Linq, anda sering menyusun set keputusan. LINQ menyediakan dan , bukan OrderBy
sumber data. OrderByDescending
IQueryable<T>
Untuk menyusun sumber data, anda perlu menggunakan kaedah IEnumerable<T>
untuk menukarnya ke
atau IEnumerable<T>
. Walau bagaimanapun, menukar kepada tidak selalu boleh dilaksanakan atau cekap. AsQueryable
IQueryable<T>
melaksanakan orderby OrderBy
OrderByDescending
Serpihan kod berikut menyediakan pelaksanaan IQueryable<T>
sumber data
IEnumerable<T>
Pelaksanaan ini dibahagikan kepada laluan atribut yang ditentukan ke dalam nama atribut tunggal, dan refleksi digunakan untuk menghasilkan pokok ekspresi. IEnumerable<T>
OrderBy
linq dinamik bersepadu OrderByDescending
<code class="language-csharp">public static IOrderedEnumerable<T> OrderBy<T>( this IEnumerable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); } public static IOrderedEnumerable<T> OrderByDescending<T>( this IEnumerable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderByDescending"); } static IOrderedEnumerable<T> ApplyOrder<T>( IEnumerable<T> source, string property, string methodName) { // 此处省略部分代码,因为原代码不完整且存在错误,无法直接运行。需要补充完整的代码逻辑才能实现动态排序。 }</code>
Dalam contoh ini, OrderBy
dan OrderByDescending
kaedah menggunakan sumber data dinamik dan laluan atribut sebagai input, dan gunakan kelas
Integrasi ini membolehkan anda menggunakan tatabahasa yang lebih ekspresif apabila menyusun sumber data dinamik, untuk lebih mudah menulis pertanyaan yang melibatkan margin kompleks. Harus diingat bahawa butiran pelaksanaan kelas tidak disediakan dalam teks asal, dan perpustakaan pihak ketiga yang sesuai perlu dilaksanakan atau menggunakannya. Di samping itu, kaedah dalam kod asal tidak lengkap, dan logik kod lengkap perlu ditambah untuk mencapai fungsi penyortiran dinamik.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan Order Linq Dynamicby pada `iQueryable` dan` ienumerable`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!