我FileInfo在 C# 中有一个看起来像这样的:
DirectoryInfo dir = new DirectoryInfo(folder);
FileInfo[] files = dir.GetFiles("Car*", SearchOption.TopDirectoryOnly);
Run Code Online (Sandbox Code Playgroud)
我希望能够选择文件中的第一个x项目,比如说30,files然后从files. 我该如何做到这一点而不只是从0to循环遍历它29?
而不是使用GetFiles,使用EnumerateFiles加号Take和ToArray:
DirectoryInfo dir = new DirectoryInfo(folder);
FileInfo[] files = dir.EnumerateFiles("Car*", SearchOption.TopDirectoryOnly).Take(30).ToArray();
Run Code Online (Sandbox Code Playgroud)
这将创建一个数组,最多包含在目录中找到的前 30 个项目。这样做的好处是,在非常大的目录中,它最多只返回 30 个项目。GetFiles将在目录中返回的所有文件第一,如果有大量的文件可能需要一些时间。EnumerateFiles另一方面,返回IEnumerable<FileInfo>允许您“流式传输”结果并在将它们收集到数组或列表之前应用 LINQ 运算符的。
注意:您需要确保using在文件顶部有适当的指令:
using System.Linq;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |