2011-01-06 45 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子句,讓它處理更復雜的排序,這樣,當您以相同的方式排序查詢時,它可以重用。