2013-12-19 140 views
2

我有一個2d數組的列表。現在我想排序我的列表 * 根據 *只有第一個元素我的數組 - 不是第二個元素。我寫的代碼如下:根據數組的第一個元素對double [,]進行排序

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); 
} 

現在,當我使用排序功能我得到「無法在陣列中來比較兩個元素」的錯誤我應該如何設置我的sortlist中,只有以此爲基礎進行第一次的Elemen排序數組。

回答

3

嘗試使用OrderBy方法從,樣品:

包括命名空間:

using System.Linq; 

,並嘗試這個辦法:

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

它不工作,它提供了以下錯誤: 「雙[*,*]」不包含「排序依據」的定義,並沒有擴展方法「排序依據」接受的第一個參數可以找到類型'double [*,*]'(你是否缺少使用指令或程序集引用? –

+0

對不起,我調整了我的示例,我的意思是在'lsResultsOfEq'中應用順序,這是'List ',並且'List'可以按順序應用。 –

2

的直截了當的方法是使用尖的Felipe Oriani出場。

以防萬一您正在查看List.Sort()進行就地排序。您可以嘗試:

lsResultsOfEq.Sort((x, y) => x[0, 0].CompareTo(y[0, 0])); 
相關問題