2013-03-13 57 views
-1

我有一個數組,其中有日期對象,我需要根據日期按升序或降序排序,即最新的一個(日期還可以包含時間戳)。日期時間數組排序

+0

對不起,我需要VB.net的答案,因爲我是vb.net的新手。 – B2Mobile 2013-03-14 07:26:20

回答

3

Array.Sort(Of T)用自定義IComparer(Of T)代表應該工作:

Dim dates = {Date.Now, Date.Now.AddDays(1), Date.Now.AddDays(2)} 
Array.Sort(Of Date)(dates, Function(d1, d2) d2.CompareTo(d1)) 

我已經整理了date.But我有對象的數組,其中包含 日期對象作爲member.So我如何排序 包含日期對象的對象數組?

您可以再次使用自定義Sort代表(假設對象是一類Person):

Array.Sort(Of Person)(persons, Function(p1, p2) p2.BirthDate.CompareTo(p1.BirthDate)) 

但最可讀的方式是使用LINQ:

Dim orderedPersons = From p In persons 
        Order By p.BirthDate Descending 
For Each p In orderedPersons 
    Console.WriteLine("{0}'s birtdate is at {1}", p.Name, p.BirthDate) 
Next 

如果如果您需要使用array則使用.ToArray(),則需要使用.ToList()查詢中的列表。

+0

感謝您的快速回復,我對日期進行了排序。但是我有一個包含日期對象作爲成員的對象數組。因此,如何對包含日期對象的對象數組進行排序? – B2Mobile 2013-03-14 08:58:37

+0

@ B2Mobile:編輯我的答案。 – 2013-03-14 09:10:11

+0

非常感謝@Tim Schmelter.It像魅力一樣工作。 – B2Mobile 2013-03-14 09:24:28