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

Dou*_*ain 1 c# yield

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

我在想类似的东西 DirectoryInfo("MyDir").GetFiles("*.txt",SearchOptions.All).ForEach(dostuff)

其中dostuff是委托人

Bra*_*NET 7

是的,DirectoryInfo.EnumerateFiles返回一个懒惰的IEnumerable

文档

你的路线是:

(new DirectoryInfo("MyDir")).EnumerateFiles("*.txt",SearchOptions.All).ForEach(dostuff)
Run Code Online (Sandbox Code Playgroud)


Hen*_*man 7

只是使用DirectoryInfo("MyDir").EnumerateFiles(),它已经yield return为你做了.

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