2013-02-06 2 views
-2

편집 : 실제로 문자열 배열입니다. 정렬하기 전에 정수로 변환하면 작업해야한다고 생각합니다 ...정렬 24 시간 시간

EDIT 2 : 정수로 변환 할 배열을 가져 왔으므로 Int로 정렬 할 수 있습니다. 이제는 어떻게 작동 시킬지 알아야합니다. 배열에 하나의 실제 문자열이 표시됩니다.

Dim test As IList(Of Integer) = etaTimeSorted.ConvertAll(Function(str) Int32.Parse(str)) 

24 시간 동안 배열을 정렬하려면 어떻게해야합니까? 정렬 할 때 실제로 숫자 일뿐입니다 (0945는 09:45).

array.sort() 

을 그리고는 다음과 같이 분류 것 : 나는 vb.net 정렬() 메소드를 사용하고이 나를 미치게된다

0001 
0010 
0100 
1000 
0102 
1100 
0112 
1130 

. 오래전에 Google에서 내 질문에 대한 답변을 찾아야한다고 생각합니다. 정렬 오버로드 중 하나가 유용 할 수 있다고 생각했지만 그렇게 보이지 않습니다.

+0

데이터 유형은 무엇입니까? –

+0

몇 가지 코드를 보여줄 수 있습니까? 왜냐하면 나는 array.sort()를 올바르게 사용하고 있다고 생각하지 않기 때문이다. –

+0

옵션 인 경우 먼저 군대 시간 (0 : 00-23 : 59)으로 변환하면 자체 비교 메소드를 구현하지 않고도이를 해결할 수 있습니다. –

답변

0

배열을 정수로 변환하고 정렬 한 다음 다시 문자열로 변환하여 "빈"항목을 삽입 할 수 있습니다.

0

IComparer(Of String)을 구현하는 클래스를 직접 작성해야합니다. . 죄송합니다, Sort()

0

는 LINQ를 사용하여 할 수 문자열 쌍을 비교하고 자신들이 속한 순서를 찾기 위해이 인터페이스를 사용하지만, 그래도 난 VB에서이 작업을 수행하는 방법을 알고하지 않습니다

nums.Select (n => new { Hour = n.Substring(0,2), Minute = n.Substring(2)}).OrderBy (n => n.Hour).ThenBy (n => n.Minute).Select (n => n.Hour + n.Minute)