我有OrderBy的動態LINQ查詢。動態Linq順序按用戶定義的順序
.AsQueryable().OrderBy("FullName", asc)
通過FullName排序後,我需要按狀態排序(類似於ThenBy())。狀態可能有例如「A」,「B」,「C」,「D」 但我需要按以下順序「B」,「A」,「D」,「C」排序。結果在這種情況下不能使用asc/desc。
我有OrderBy的動態LINQ查詢。動態Linq順序按用戶定義的順序
.AsQueryable().OrderBy("FullName", asc)
通過FullName排序後,我需要按狀態排序(類似於ThenBy())。狀態可能有例如「A」,「B」,「C」,「D」 但我需要按以下順序「B」,「A」,「D」,「C」排序。結果在這種情況下不能使用asc/desc。
你需要做到以下幾點:
一)定義的順序你的鑰匙收集你想
var keys = new string[]{"B", "A", "D", "C"};
b)利用上面的鍵來定義數據
的定製訂單var result = yourCollection.AsQueryable()
.OrderBy("FullName", asc)
.ThenBy(x=>keys.IndexOf(x.Status));
我的第一個解決方法是將數字排序字段添加到狀態表中。 – Jake1164
從什麼來源(ORM?)獲得Queryable? –
是狀態枚舉? –