Linq OrderBy给出了多列,优先顺序和排序方向

时间:2017-08-25 15:21:21

标签: c# linq sorting expression-trees

我有一个IEnumerable用于多个排序顺序规范,其中:

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

然后我有另一个IQueryable,我希望根据给定的IEnumerable进行懒惰排序,尊重方向和优先级。这样做的最佳方法是什么?那里有没有图书馆目前这样做?有人可以解释如何通过动态查询(表达式树)来处理这样的事情吗?

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

1 个答案:

答案 0 :(得分:0)

使用Linq; 我会根据他们的优先级创建列表,然后按照优先级列表的方式对它们进行排序,以便稍后将它们全部添加到一个列表中

列表l = [ArrayObject / List] .OrderBy(o => o.Priority ==(int)p);

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