【问题标题】:How can I order a list of lists of lists in C#如何在 C# 中排序列表列表
【发布时间】:2014-05-02 02:48:10
【问题描述】:

我实际上正在使用一个包含列表的列表,其中包含列表(是的,三个集合):

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 的具有多条线的折线图的坐标,因此每条线的渲染顺序并不重要。谢谢

【问题讨论】:

    标签: c# linq list


    【解决方案1】:

    您首先对 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 2018-08-06
      • 2010-11-18
      相关资源
      最近更新 更多