[C#]使用IQueryable動態排序ThenBy
該情境是前端有資料需要多重排序,每個欄位 (key) 可以正序或倒序 (order) ,且要依照順序 (sortNo) ,所以前端只要把排序條件給後端,而後端會把資料篩選排序後,回傳給前端。 由於效能因素,物件必須於過程中保持 IQueryable,於最後輸出時再轉為 IEnumerable,所以這邊有個擴充可以參考引用。 ●排序條件的範例Json: { "orderList": [ { "key": "Id". "order": 1, "sortNo": 1 }, { "key": "Age". "order": -1, "sortNo": 2 } ] } 一、手動新增IQueryable擴充: public static class IOrderedQueryableExtension { public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); } public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderByDescending"); } public static IOrderedQueryable<T> ThenBy<T>(...