日期时间数组排序

时间:2013-03-13 12:30:53

标签: vb.net

我有一个数组,其中包含日期对象,我需要按照日期按升序或降序排序,即最新的第一个(日期也可以包含时间戳)。

1 个答案:

答案 0 :(得分:3)

带有自定义IComparer(Of T)委托的

Array.Sort(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))
  

我已经对日期进行了排序。但是我有一个包含对象的数组   日期对象作为成员。所以我如何对对象数组进行排序   包含日期对象?

您可以再次使用自定义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

如果您需要查询中的列表,请使用.ToList(),如果您需要array使用.ToArray()