我实际上使用的列表包含包含列表的列表(是三套):
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对具有多行的线图进行协调,因此每行渲染的顺序并不重要。感谢
答案 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();