如何在vb.net中的数组列表中对日期进行排序?

时间:2015-06-29 06:33:36

标签: arrays vb.net sorting

我有几个以日期格式(dd / mm / yyyy)命名的文件。我必须收集它们并在arraylist中排序吗?任何建议......我确实喜欢这个

Dim filepath As String = FileStr
Dim directoryPath As String = System.IO.Path.GetDirectoryName(filepath)
Dim arrayList As New System.Collections.ArrayList()
For Each file As String In System.IO.Directory.GetFiles(directoryPath)
 arrayList.Add(System.IO.Path.GetFileNameWithoutExtension(file))
Next
arrayList.Sort()

1 个答案:

答案 0 :(得分:2)

注意:名为29/06/2015.txt的文件在 Windows 上无效。以下代码已使用以下格式进行测试:yyyy-mm-ddyyyy-dd-mm,...

以下实施不起作用吗?这会使用List而不是arraylist

Dim filepath As String = FileStr
Dim directoryPath As String = System.IO.Path.GetDirectoryName(filepath)
Dim myFileList As New List(Of String)
For Each file As String In System.IO.Directory.GetFiles(directoryPath)
    'Add only dates to the list
    If (IsDate(System.IO.Path.GetFileNameWithoutExtension(file))) Then
        myFileList.Add(System.IO.Path.GetFileNameWithoutExtension(file))
    End If
Next
myFileList.OrderByDescending(Function(x) CType(x, DateTime))

使用OrderByOrderBydescending更改排序方向

如果Arraylist是强制性的,那么您仍然可以更改输出,您可以轻松创建ArrayList from a List,如下所示。

Dim arr As New ArrayList(myFileList)