如何在c#中对列表的列表的列表排序?
本文关键字:列表 排序 | 更新日期: 2023-09-27 18:01:20
我实际上使用的是包含列表的列表包含列表的列表(是的,三个集合):
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的具有多条线的线形图的坐标,因此每条线的呈现顺序并不重要。由于
首先对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();