2013-02-06 76 views
-2

編輯:它實際上是一個字符串數組。我想,如果我轉換成整數排序它應該工作之前...Sort 24 Hour Time

編輯2:我已經得到了數組轉換爲INT所以我可以詮釋排序,現在我只需要弄清楚如何使它工作用數組中的一個實際字符串。

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

如何排序24小時的數組?當我對它們進行排序時,它們實際上只是數字(0945而不是09:45)。我使用vb.net sort()方法:

array.sort() 

而且它的排序是這樣的:

0001 
0010 
0100 
1000 
0102 
1100 
0112 
1130 

這是推動我堅果。我覺得我很早以前就應該在Google上找到我的問題的答案。我想也許有一種重載會很有用,但它看起來並不那樣。

+0

什麼是數據類型? –

+0

你能告訴我們一些代碼嗎?因爲我不認爲你正確使用array.sort()。 –

+0

如果這是一個選項,首先轉換爲軍事時間(0:00-23:59)將解決這個問題,而不必實施自己的比較方法。 –

回答

0

轉換數組爲int,排序,再轉換回字符串,所以我可以插入我的「空白」項。

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)