2011-01-06 62 views

回答

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

101 LINQ Samples借鉴:

orderby p.Category, p.UnitPrice descending 

或拉姆达:

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

Steven的答案会起作用,但我更喜欢用方法链来声明LINQ语法,例如,

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

你为什么要这么做? LINQ比扩展方法和lambda更可读。 – Steven 2011-01-06 12:39:50

0

的完整性和作为替代这里的另一个很好的答案...

还有过载或排序依据,它接受一个I​​Comparer的,如果这是你想要一个共同的整理格局,然后您可能希望创建一个类来传递它并将其传递给orderby子句,让它处理更复杂的排序,这样,当您以相同的方式排序查询时,它可以重用。