按创建日期对DirectoryInfo进行排序

时间:2013-10-18 14:48:23

标签: vb.net sorting .net

此代码为我提供了一个文件夹列表。没有排序,它首先出现最早。虽然我不认为可以保证。(它可以根据文件名进行排序,这是一个日期)。我想使用OrderBy或OrderByDescending函数根据创建日期对其进行最新排序。

Dim di As New DirectoryInfo(root)
folderList = di.GetDirectories()

'does not work
folderList.OrderByDescending(Function(x) x.CreationTime)

谢谢

1 个答案:

答案 0 :(得分:3)

您需要(重新)指定OrderByDescending返回给变量的值,它不会对原始集合进行排序。

例如:

folderList = folderList.
    OrderByDescending(Function(x) x.CreationTime).
    ToArray()

另一种选择是对原始数组进行排序:

Array.Sort(folderList, Function(d1, d2) d1.CreationTime.CompareTo(d2.CreationTime))

我正在使用this overload of Array.Sort Comparison(Of T)