2012-12-21 67 views
0

我有這個列表。我想根據按順序排序的類別擁有不同的值。可以請某人告訴我該怎麼做。列表上的多個操作

public class Item 
    { 
     public string URL{ get; set; } 
     public string Title { get; set; } 
     public string Category { get; set; }   
     public string Order{ get; set; } 


    } 

    var Test = new List<Items> 

    var groups = Test.Select(g => g.category).Distinct(); 

感謝

+2

你能解釋一下你打算做什麼嗎? – Styxxy

+0

我想先在「測試」列表中選擇不同的值,然後按順序對它們進行排序。 – user505210

+0

您現在選擇不同的類別。 –

回答

1
var groups = Test 
    .GroupBy(g => g.Category) 
    .Select(g => new 
       { 
        Category = g.Key, 
        Items = g.OrderBy(i => i.Order) 
       }) 
    .OrderBy(g => g.Category) 
    .SelectMany(g => g.Items) 
    .ToList(); 

,或者基本上是在這種情況下,同樣的事情:

Test.OrderBy(it => it.Category).ThenBy(it => it.Order) 

如果你想與子組的列表,你可以取出的SelectMany第一碼 - 該類別中的商品列表按訂單排序。

+0

在這種情況下,它將首先按類別值進行分組,然後按類別值本身排序..我想按類別值對其進行分組,然後使用測試列表的順序值對其進行排序。 – user505210

+0

@ user505210:已更新它。像這樣? –