如何在linq查询中应用多个orderby

时间:2011-01-06 09:48:51

标签: linq sorting

我想在多个列上应用order by升序,而其他列在LINQ中按降序排列。我怎么能这样做?

5 个答案:

答案 0 :(得分:30)

var sortedCollection =
    from item in collection
    orderby item.Property1, item.Property2 descending, item.Property3
    select item;

答案 1 :(得分:25)

借鉴101 LINQ Samples

orderby p.Category, p.UnitPrice descending

或作为Lambda:

products.OrderBy(p => p.Category).ThenByDescending(p => p.UnitPrice); 

答案 2 :(得分:6)

史蒂文的答案可行,但我更喜欢方法链接到声明性LINQ语法,例如

collection
    .OrderBy(e => e.Property1)
    .ThenByDescending(e => e.Property2)
    .ThenBy(e => e.Property3)

答案 3 :(得分:1)

应该只是说明问题

orderby x, y descending, z

请参阅good old ms examples

答案 4 :(得分:0)

为了完整性,可以替代其他好的答案......

还有一个带有IComparer的重载或OrderBy,如果这是你想要的常见顺序模式,那么你可能想要创建一个包含它并将它传递给orderby子句的类,让它处理更多复杂的排序,这样当你以同样的方式订购查询时它就可以重复使用。

相关问题