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

时间:2012-10-24 22:31:15

标签: c#

我有这个功能:

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调用此离线函数,我希望每次从数组中返回下一个字符串。

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

我该怎么做?

1 个答案:

答案 0 :(得分:4)

最简单的方法 - 使用yield

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