2014-05-02 29 views
0

我实际使用包含其中包含名单列表(是三组)的列表:我如何在C#顺序,列出的名单列表

List<List<List<int>>> threeD = new List<List<List<int>>>(); 

我填这个怪物后,我得到这个:

var threeD = [ [[18,100],[13,95]], [[12,100],[2,5],[7,45]], [[19,100]] ]; 

上面的列表包含三个单独的列表,其中列出了x和y int。我如何根据第一个数字对它们进行排序。我需要的输出是:

var threeD = [ [[13,95],[18,100]], [[2,5],[7,45],[12,100]], [[19,100]] ]; 

我在想使用某种linq语句进行排序。或者我应该继续创建嵌套for循环?

编辑: 我只需要最内部的列表,而不是外部列表进行排序。它们实际上是使用jqplot的具有多行的线图的坐标,因此每行渲染的顺序并不重要。由于

+3

为什么13小于2? – poke

+0

我不需要对外部列表进行排序。只是最内层的列表。对困惑感到抱歉 –

回答

3

你先排序X/Y号的内部列表,然后您订购外列表:

threeD.Select(sublist => sublist.OrderBy(xy => xy[0]).ToList()) 
     .OrderBy(sublist => sublist[0][0]) 
     .ToList(); 

如果你只需要排序的内部列表,只留下外理清:

threeD.Select(sublist => sublist.OrderBy(xy => xy[0]).ToList()).ToList();