我有OrderBy的动态linq查询。
.AsQueryable().OrderBy("FullName", asc)
按FullName排序后,我需要按状态排序(类似于ThenBy())。状态可能包含例如“A B C D” 但我需要按照以下顺序排序“B”,“A”,“D”,“C”。结果在这种情况下不能使用asc / desc。
答案 0 :(得分:2)
您需要执行以下操作:
a)按照您想要的顺序定义密钥集合
var keys = new string[]{"B", "A", "D", "C"};
b)使用上述键定义数据的自定义顺序
var result = yourCollection.AsQueryable()
.OrderBy("FullName", asc)
.ThenBy(x=>keys.IndexOf(x.Status));