使用比较列表对列表进行排序

本文关键字:列表 排序 比较 | 更新日期: 2023-09-27 18:01:18

需要在c#中做类似的事情吗?我在java中做:

Double[][] matrix = new Double[3][4];
        matrix[0][0] = 100.0;
        matrix[0][1] = -3.0;
        matrix[0][2] = 50.0;
        matrix[0][3] = 50.3;
        matrix[1][0] = 1.2;
        matrix[1][1] = 1.1;
        matrix[1][2] = 0.9;
        matrix[1][3] = 10000.0;
        matrix[2][0] = 2.3;
        matrix[2][1] = 2.35;
        matrix[2][2] = 2.32;
        matrix[2][3] = 2.299;
        Arrays.sort(matrix, new Lexical());

我一直在看MSDN文档,没有方法,但排序列表,没有任何List<List<T>>

谢谢

使用比较列表对列表进行排序

乔治。

一个可能的解决方案:

matrix.Sort(delegate(List<double> l1, List<double> l2)
            {
               return l1[0].CompareTo(l2[0]);
            });

再见。

你可以实现你自己的ic比较器和排序或者你可以用Linq做一些事情它会遍历整个矩阵并排序,或者你可以把它变成另一个数据结构,比如List>然后你就可以很容易地排序了

或者像这样:

如何在c#中对二维数组排序?

http://www.codeproject.com/Tips/166236/Sorting-a-two-dimensional-array-in-C

您可以按每个数组的第一个元素排序(如果这是您要求的):

var matrix = new double[][] {
    new[] { 100.0, -3.0, 50.0, 50.3 },
    new[] { 1.2, 1.1, 0.9, 10000.0 },
    new[] { 2.3, 2.35, 2.32, 2.299}
};
Array.Sort(matrix, (a, b) => a[0].CompareTo(b[0]));