我有一个包含日期对象的数组,我需要按日期按升序或降序排序,即最新的第一个(日期也可以包含时间戳)。
问问题
6544 次
1 回答
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))
我已经对日期进行了排序。但是我有一个对象数组,其中包含日期对象作为成员。那么如何对包含日期对象的对象数组进行排序?
您可以再次使用自定义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
如果你需要一个 List 从查询中使用.ToList()
,如果你需要一个array
使用.ToArray()
。
于 2013-03-13T12:38:28.500 回答