2014-05-02 27 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();