2012-09-03 112 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

相关问题