我正在打电话GetFiles,我必须返回在所有嵌套目录中找到的文件.我希望能够在返回时找到找到的文件.是否可以以允许收益率回报的方式调用GetFiles?或者是否有必要推出我自己的版本GetFiles使用yield return.
我在想类似的东西 DirectoryInfo("MyDir").GetFiles("*.txt",SearchOptions.All).ForEach(dostuff)
其中dostuff是委托人
是的,DirectoryInfo.EnumerateFiles返回一个懒惰的IEnumerable
你的路线是:
(new DirectoryInfo("MyDir")).EnumerateFiles("*.txt",SearchOptions.All).ForEach(dostuff)
Run Code Online (Sandbox Code Playgroud)
只是使用DirectoryInfo("MyDir").EnumerateFiles(),它已经yield return为你做了.
它可以从.NET 4获得并返回IEnumerable<FileInfo>.