对日期数组进行排序

时间:2013-08-07 11:53:14

标签: asp.net arrays vb.net asp.net-4.0

我已经使用日期值的CSV创建了一个数组,现在需要对它们进行排序,以便我可以从数组中获取最新日期。

我试过了:

Array.Sort()

但这没有正确排序,我想因为数组值是字符串,任何正文都有任何想法?

感谢您的帮助。

使用代码创建阵列

'array string exampel: "19/07/2012,23/07/2012,23/07/2012,19/07/2012,25/07/2012"
Dim ArrDates As Array = ArrDates .Split(",")

Dim ArrAgentsReportCheck As Array = AgentsReportCheck.Split(",")

Dim ArrDates As New List(Of Date)
For i As Integer = 0 To ArrAgentsReportCheck.Length - 1
    ArrDates.Add(ArrAgentsReportCheck(i))
Next

ArrDates.Sort()
Dim LatestDate As Date = ArrDates.Max()

3 个答案:

答案 0 :(得分:3)

ArrDates = ArrDates.OrderBy(Function(d) DateTime.ParseExact(d, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)).ToArray()

或者,您可以根据需要使用OrderByDescending()

答案 1 :(得分:1)

一种方法是使用DateTime.ParseExact

将字符串转换为DateTime

另一种方式只是write your own IComparer and pass to Array.Sort

答案 2 :(得分:1)

正如旁观者所说,对具有日期时间值的数组进行排序非常复杂。而只是将数组转换为List或ArrayList,让您的生活变得轻松。

对于ArrayList,您可以使用以下语法:

List<DateTime> dates = ... // init and fill
dates.Sort();
dates.Reverse();