从 FileInfo 中获取前 x 项

Get first x items from FileInfo

我在 C# 中有一个 FileInfo,如下所示:

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

我希望能够 select files 中文件的第一个 x 项,比方说 30,然后从 [=14] 中删除其余的=].我该怎么做而不只是从 0 循环到 29?

不使用 GetFiles,而是使用 EnumerateFiles plus TakeToArray

DirectoryInfo dir = new DirectoryInfo(folder);
FileInfo[] files = dir.EnumerateFiles("Car*", SearchOption.TopDirectoryOnly).Take(30).ToArray();

这将创建一个数组,最多包含目录中找到的前三十个项目。这样做的好处是,在非常大的目录中,它最多只有 return 三十个项目 GetFiles 将 return 目录 中的每个文件首先 如果有很多文件,这可能需要一些时间。 EnumerateFiles 另一方面,return 是一个 IEnumerable<FileInfo>,它允许您 "stream" 结果并应用 LINQ 运算符 before 将它们收集到数组或列表。

注意:您需要确保文件顶部有适当的 using 指令:

using System.Linq;