我正在调用GetFiles
,我必须返回在所有嵌套目录中找到的文件。我希望能够在返回时找到找到的文件。是否可以以允许收益率回报的方式调用GetFiles?或者是否有必要推出使用yield return的GetFiles
版本。
我在想DirectoryInfo("MyDir").GetFiles("*.txt",SearchOptions.All).ForEach(dostuff)
其中dostuff是委托
答案 0 :(得分:7)
是的,DirectoryInfo.EnumerateFiles
会返回延迟加载的IEnumerable
你的专栏将是:
(new DirectoryInfo("MyDir")).EnumerateFiles("*.txt",SearchOptions.All).ForEach(dostuff)
答案 1 :(得分:7)
只需使用DirectoryInfo("MyDir").EnumerateFiles()
,它就已经为您yield return
了。
可从.NET 4获得并返回IEnumerable<FileInfo>
。