首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用枚举文件以降序获取文件

问如何使用枚举文件以降序获取文件
EN

Stack Overflow用户
提问于 2018-03-18 20:30:27
回答 1查看 415关注 0票数 0

我刚开始使用enumerateFiles。我正在尝试从一个超过20,000的目录中抓取50个最新的文件。我似乎无法理解让OrderByDescending正常工作所需的语法。我看过intellisense,但我就是不明白。有人能帮上忙吗?

代码语言:javascript
复制
Dim root As String = "C:\Test"
Dim files = From file In 
Directory.EnumerateFiles(root).Take(50).OrderByDescending(Of String)
EN

回答 1

Stack Overflow用户

发布于 2018-03-20 22:19:01

使用LINQ有不同的语法。

第一个看起来有点像SQL (从x到y),我不熟悉它。

另一个看起来像集合上的常见函数。这些函数将从左到右执行,因此您的不起作用的示例

代码语言:javascript
复制
Directory.EnumerateFiles(root).Take(50).OrderByDescending(Of String)

将首先执行EnumerateFiles。然后,它将从EnumerateFiles的结果中提取前50个项目,然后按降序对前50个项目进行排序。

因为你想要另一种方式(首先按日期降序排序,然后取前50项),所以你必须对代码进行一些调整。

代码语言:javascript
复制
Dim root As String = "C:\Test"
Dim files As IEnumerable(Of String) = IO.Directory.EnumerateFiles(root) _
                                                  .OrderByDescending(Of String)(Function(x As String) x) _
                                                  .Take(50)

现在,它将按名称降序对文件进行排序。如果您希望按其他条件进行排序,则必须更改代码的OrderByDescending部分,例如

代码语言:javascript
复制
....OrderByDescending(Of Date)(Function(x As String) IO.File.GetLastAccessTime(x))...

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49347888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档