如何对int列表进行排序

时间:2018-04-23 04:40:59

标签: c# sorting generics integer

请告诉我如何对包含整数列表的List进行排序。

List<List<int>> numberLists = new List<List<int>>();
numberLists.Add(new List<int>() { 6, 8, 9 });
numberLists.Add(new List<int>() { 2, 4, 7 });
numberLists.Add(new List<int>() { 4, 7, 8 });
numberLists.Add(new List<int>() { 2, 3, 9 });

如何对上面的列表进行排序以获得以下结果?

 2, 3, 9
 2, 4, 7
 4, 7, 8
 6, 8, 9

提前谢谢!

2 个答案:

答案 0 :(得分:0)

你可以这样做

var results = numberLists.OrderBy(x => x[0])
                         .ThenBy(x => x[1])
                         .ThenBy(x => x[2]);

foreach (var result in results)
{
   foreach (var subresult in result)
   {
      Console.Write(subresult + " ");
   }
   Console.WriteLine();
}

<强>输出

2 3 9
2 4 7
4 7 8
6 8 9

Full Demo here

其他结果

Enumerable.OrderBy Method (IEnumerable, Func)

  

按照a的升序对序列的元素进行排序   键。

Enumerable.ThenBy Method (IOrderedEnumerable, Func)

  

对序列中的元素进行后续排序   按键升序。

答案 1 :(得分:0)

您可以根据您的标准以简单的方式执行此操作

Sub CustomCopy()
    Dim lastRow As Long
    With Sheets("Sheet1")
        'first we find last row in column A (in sheet1)
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        'now we copy until found row number and paste it to Sheet2 starting from cell A13
        .Range("A1:A" & lastRow).Copy Sheets("Sheet2").Range("A13:A" & (lastRow + 12))
    End With
End Sub

只需将其转换为字符串,然后比较为字符串