从 FileInfo 获取前 x 项

KGB*_*B91 1 c# fileinfo

FileInfo在 C# 中有一个看起来像这样的:

        DirectoryInfo dir = new DirectoryInfo(folder);
        FileInfo[] files = dir.GetFiles("Car*", SearchOption.TopDirectoryOnly);
Run Code Online (Sandbox Code Playgroud)

我希望能够选择文件中的第一个x项目,比如说30files然后从files. 我该如何做到这一点而不只是从0to循环遍历它29

pin*_*x33 5

而不是使用GetFiles,使用EnumerateFiles加号TakeToArray

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)