2017-08-25 176 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;組;如果你不需要它,這會提高性能。