2013-12-19 4 views
2

2 차원 배열 목록이 있습니다. 지금은 으로 정렬 내 목록 * 을 기반으로 * 첫 번째 요소 내 배열 - 두 번째 요소가 아닙니다. 나는 다음과 같은 코드를 작성 :배열의 첫 번째 요소를 기준으로 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); 
} 

을 지금은 내가 "배열의 두 요소를 비교하지 못했습니다"오류를 얻을 정렬 기능을 사용할 때 어떻게 난 단지 첫 elemen에 따라 정렬을 수행 내있는 sortList을 설정해야 배열의.

네임 스페이스 포함 :

답변

3

것은 샘플, 에서 OrderBy 방법을 사용해보십시오

using System.Linq; 

을이 시도 :

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

이 나던 작품은, 그것은 다음과 같은 오류를 제공합니다 : '더블 [*, *]' '있는 OrderBy'에 대한 정의없이 확장 메서드 '있는 OrderBy'는의 첫 번째 인수를 받아들이는 포함되어 있지 않습니다 –

+0

죄송합니다. 샘플을 조정합니다. 즉,'List '인'lsResultsOfEq'에서 주문을 적용하는 것을 의미합니다. 그리고 'double [*, *]'을 (를) 찾을 수 없습니다. 'List'는 주문을 적용 할 수 있습니다. –

2

직선 전달 방법은 지적으로 를 사용하는 것 펠리페 Oriani.

In-place sorting을 위해 List.Sort()를보고있는 경우를 대비하여. 당신이 시도 할 수 있습니다 :

lsResultsOfEq.Sort((x, y) => x[0, 0].CompareTo(y[0, 0])); 
관련 문제