假设我有一个包含100多个文件夹路径的列表.我想从每个文件夹路径中只检索一个文件路径.这是我正在做或计划这样做的方式:
var Files = new List<String>();
var Directories = Directory.GetDirectories("C:\\Firstfolder\\Secondfolder\\");
Array.ForEach(Directories, D => Files.Add(Directory.GetFiles(D).FirstOrDefault()));
Run Code Online (Sandbox Code Playgroud)
现在,这是最有效的方式吗?因为我的程序每次启动时都会执行此代码.
取而代之的Directory.GetFiles使用Directory.EnumerateFiles,以避免加载所有文件路径为从memory.This报价文档解释了区别:
该
EnumerateFiles和GetFiles方法的区别如下:当您使用EnumerateFiles,你可以返回整个集合之前开始枚举名称的集合; 在使用时GetFiles,必须等待返回整个数组,然后才能访问该数组.因此,当您使用许多文件和目录时,EnumerateFiles可以更高效.