我如何获得一个字符串并返回每次从数组中的字符串?

我有这个function:

private string offline(string targetDirectory) { string directory = ""; try { string[] dirs = Directory.GetDirectories(targetDirectory,"*.*",SearchOption.TopDirectoryOnly); for (int i = 0; i < dirs.Length; i++) { directory = dirs[i]; } } catch { } return directory; } 

例如,如果targetDirectory是c:\那么我进入数组14目录。 现在我希望每次我将函数调用离线时它会返回第一个字符串c:\ $ Recycle.Bin然后它将返回c:\ test并且每次调用该函数它将返回数组中的下一个字符串。 由于我使用recrusive函数并从recrusive调用此离线函数,我希望它每次返回数组中的下一个字符串。

现在它现在只返回数组中的最后一个目录,就是这样。

我该怎么做 ?

最简单的方法 – 使用yield

 IEnumerable offline(string dir) { ... ... instead of directory = dirs[i] do yield return dirs[i]; }