前端有個下拉框,有,時間和ID兩個排序選項,然后我選任意選項,根據任意選項的欄位名排序
例如 List<user> userList=userList.OrderBy(a => a.Id).ToList();
其中 a.id 能不能動態修改欄位,根據傳的欄位名排序
List<user> userList=userList.OrderBy(a => a.(動態的引數)).ToList();
uj5u.com熱心網友回復:
用運算式樹或者反射。反射簡單一些。
List<user> userList=userList.OrderBy(a => a.GetType().GetProperty("欄位名").GetValue(a, null).ToString()).ToList();
uj5u.com熱心網友回復:
根據引數排序用 switch 就是了用反射得不償失,況且 如果是EF 呢?你怎么反
uj5u.com熱心網友回復:
沒用啊uj5u.com熱心網友回復:
我認為,可以自己實作一個sort方法,然后userList.MySortuj5u.com熱心網友回復:
dynamic 即可。uj5u.com熱心網友回復:
OrderBy(a => a.(動態的引數)-》自定義一個fun委托,回傳要排序的列型別即可。
uj5u.com熱心網友回復:
你賺了,前段時間有做過這個string orderExpression = string.Format("{0} {1}", sortField, sortType == SortType.Asc ? "asc" : "desc");
query = query.OrderBy(orderExpression);
sortField 是要排序的欄位名,sortType是定義的列舉,來判斷正反序
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/130326.html
標籤:C#
