1

我有 OrderBy 的动态 linq 查询。

 .AsQueryable().OrderBy("FullName", asc)

按全名排序后,我需要按状态排序(类似于 ThenBy())。状态可能有值,例如“A”、“B”、“C”、“D”,但我需要按以下顺序排序“B”、“A”、“D”、“C”。结果在这种情况下不能使用 asc/desc。

4

1 回答 1

2

您需要执行以下操作:

a)按照您想要的顺序定义您的密钥集合

var keys = new string[]{"B", "A", "D", "C"};

b) 使用上述键定义数据的自定义顺序

var result = yourCollection.AsQueryable()
                           .OrderBy("FullName", asc)
                           .ThenBy(x=>keys.IndexOf(x.Status));
于 2012-06-26T15:27:19.207 回答