2012-09-03 153 views
-2

可能重複:
Sort a field of each object in a list with LINQ如何通過嵌套的IEnumerable對象對IEnumerable對象進行排序?

我有這個集合:

IEnumerable<sample> sam = new List<sample>() 
    { 
     new sample{ id = 1, name = "sample 1", list = new List<int>{5,6,1}}, 
     new sample{ id = 2, name = "sample 1", list = new List<int>{2,9}}, 
     new sample{ id = 3, name = "sample 1", list = new List<int>{8,3,7}}, 
     new sample{ id = 4, name = "sample 1", list = new List<int>{8,4,3}}, 
     new sample{ id = 5, name = "sample 1", list = new List<int>{5,1,7}}, 
     new sample{ id = 6, name = "sample 1", list = new List<int>{6,9,7}} 
    }; 

我怎樣才能使輸出爲解決這使用LINQ:

 new sample{ id = 2, name = "sample 1", list = new List<int>{2,9}}, 
    new sample{ id = 5, name = "sample 1", list = new List<int>{5,1,7}}, 
    new sample{ id = 1, name = "sample 1", list = new List<int>{5,6,1}}, 
    new sample{ id = 6, name = "sample 1", list = new List<int>{6,9,7}} 
    new sample{ id = 3, name = "sample 1", list = new List<int>{8,3,7}}, 
    new sample{ id = 4, name = "sample 1", list = new List<int>{8,4,3}}, 

這是按順序排列。

感謝

+1

做作業?另請參見http://stackoverflow.com/questions/12241199/sort-a-field-of-each-object-in-a-list-with-linq/12241489#12241489 – horgh

回答

2

這裏的LINQ由list財產的第一項命令sam(我推測這就是你以後,對不對?):

IEnumerable<sample> orderedSam = sam.OrderBy(item => item.list.FirstOrDefault()); 
+0

將操作符更改爲'FirstOrDefault()'應該按空列表排序時防範異常。 –

+0

是的,就像那樣...感謝很多 – user1120260

+0

@SteveGuidi好點。 – McGarnagle

相關問題