我如何获得一个字符串并返回每次从数组中的字符串?
我有这个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]; }