2017-08-25 93 views
-1

我有一个IEnumerable多个排序规格,其中:LINQ的排序依据给定的多列,优先顺序和排序方向

public class Specification 
{ 
    public string Column { get; set; } 
    public OrderByDirection Direction { get; set; } 
    public int Priority { get; set; } 
} 

然后,我有另一种IQueryable,我想偷懒的排序给定的基础上, IEnumerable尊重方向和优先。什么是最好的方法来做到这一点?目前有没有图书馆可以做到这一点?有人能解释一下这样的事情可以通过动态查询(表达式树)来解决吗?

注意:假定指定的列确实存在于IQueryable中。

回答

0

使用Linq; 我想创建的列表根据它们的优先级,然后的foreach优先级列表进行排序,你想以后他们都加到一个列表

列表L = [ArrayObject的/列表] .OrderBy(O => o.Priority方式==(int)p);

  • 使用struct而不是类而不使用get;组;如果你不需要它,这会提高性能。