是否可以在DirectoryInfo.GetFiles上启用yield return?

时间:2014-06-12 20:32:13

标签: c# yield

我正在调用GetFiles,我必须返回在所有嵌套目录中找到的文件。我希望能够在返回时找到找到的文件。是否可以以允许收益率回报的方式调用GetFiles?或者是否有必要推出使用yield return的GetFiles版本。

我在想DirectoryInfo("MyDir").GetFiles("*.txt",SearchOptions.All).ForEach(dostuff)

之类的东西

其中dostuff是委托

2 个答案:

答案 0 :(得分:7)

是的,DirectoryInfo.EnumerateFiles会返回延迟加载的IEnumerable

Documentation

你的专栏将是:

(new DirectoryInfo("MyDir")).EnumerateFiles("*.txt",SearchOptions.All).ForEach(dostuff)

答案 1 :(得分:7)

只需使用DirectoryInfo("MyDir").EnumerateFiles(),它就已经为您yield return了。

可从.NET 4获得并返回IEnumerable<FileInfo>

相关问题