我已经使用日期值的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()
答案 0 :(得分:3)
ArrDates = ArrDates.OrderBy(Function(d) DateTime.ParseExact(d, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)).ToArray()
或者,您可以根据需要使用OrderByDescending()
。
答案 1 :(得分:1)
一种方法是使用DateTime.ParseExact
将字符串转换为DateTime答案 2 :(得分:1)
正如旁观者所说,对具有日期时间值的数组进行排序非常复杂。而只是将数组转换为List或ArrayList,让您的生活变得轻松。
对于ArrayList,您可以使用以下语法:
List<DateTime> dates = ... // init and fill
dates.Sort();
dates.Reverse();