根据数组的第一个元素对double [,]列表进行排序

时间:2013-12-19 01:50:23

标签: c# arrays list sorting

我有一个2d数组列表。现在我想基于 * 排序我的列表 * *仅我的数组的第一个元素 - 而不是第二个元素。我编写了如下代码:

List<double[,]> lsResultsOfEq = new List<double[,]>();
double[,] resultOfEqConv;

for (int i = 0; i < n; i++)
{
    resultOfEq = a*b*c;

    //add value and index
    resultOfEqConv = new double[1, 2];
    resultOfEqConv[0, 0] = (double)resultOfEq[0, 0];
    resultOfEqConv[0, 1] = i;
    lsResultsOfEq.Add(resultOfEqConv);
}  

现在,当我使用sort函数时,我收到错误“无法比较数组中的两个元素”我应该如何设置我的sortlist,它只根据数组的第一个元素进行排序。

2 个答案:

答案 0 :(得分:3)

尝试使用中的OrderBy方法获取示例:

包含命名空间:

using System.Linq;

试试这个:

var orderResult = lsResultsOfEq.OrderBy(x => x[0, 0]).ToList();

答案 1 :(得分:2)

直截了当的方式是使用,正如Felipe Oriani所指出的那样。

以防您正在查看List.Sort()以进行就地排序。你可以尝试:

lsResultsOfEq.Sort((x, y) => x[0, 0].CompareTo(y[0, 0]));