使用比较列表对列表进行排序
本文关键字:列表 排序 比较 | 更新日期: 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]));