Asp.net 对日期数组排序
我已经从日期值的CSV创建了一个数组,现在需要能够对它们进行排序,以便从数组中获取最新的日期 我试过:Asp.net 对日期数组排序,asp.net,arrays,vb.net,asp.net-4.0,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 Arr
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()
一种方法是使用DateTime.ParseExact将字符串转换为DateTime
另一种方法是使用DateTime.ParseExact将字符串转换为DateTime
另一种方法是,正如astander所说,对具有日期时间值的数组进行排序非常复杂。相反,只需将数组转换为List或ArrayList,即可轻松使用 对于ArrayList,可以使用以下语法:
List<DateTime> dates = ... // init and fill
dates.Sort();
dates.Reverse();
列出日期=…//初始化和填充
dates.Sort();
日期。反向();
正如astander所说,对具有日期时间值的数组进行排序非常复杂。相反,只需将数组转换为List或ArrayList,即可轻松使用
对于ArrayList,可以使用以下语法:
List<DateTime> dates = ... // init and fill
dates.Sort();
dates.Reverse();
列出日期=…//初始化和填充
dates.Sort();
日期。反向();
或者,您可以根据需要使用OrderByDescending()
或者,您可以根据需要使用
OrderByDescending()
。创建日期时间对象(而不是字符串)的列表(而不是数组)。您可以使用DateTime.TryParse/TryParseExact将字符串转换为DateTime,然后使用Sort方法。向我们展示一个要转换为date的示例字符串。用于加载数组和字符串格式(解释为日期)的代码在这里应该非常有帮助,感谢您的回复,在dates字符串及其如何转换为数组的示例中添加。正如其他人所说,请创建一个列表(日期时间)
,然后您可以在其上使用Max()
来获取最大值(即最新日期)。如果只需要获取最新的日期,则不需要对整个列表进行排序,这样Max会更快。创建DateTime对象(而不是字符串)的列表(而不是数组)。您可以使用DateTime.TryParse/TryParseExact将字符串转换为DateTime,然后使用Sort方法。向我们展示一个要转换为date的示例字符串。用于加载数组和字符串格式(解释为日期)的代码在这里应该非常有帮助,感谢您的回复,在dates字符串及其如何转换为数组的示例中添加。正如其他人所说,请创建一个列表(日期时间)
,然后您可以在其上使用Max()
来获取最大值(即最新日期)。如果你只想得到最新的日期,那么你不需要对整个列表进行排序,这样Max会更快。谢谢,这很好,我在上面添加了我的最终解决方案,以防对任何人都有帮助。谢谢,这很好,我在上面添加了我的最终解决方案,以防对任何人都有帮助。