-5

我有这样的代码。

IEnumerable<string> imagesFileNames = FindImages(imagesFolder);

 foreach(string imageFileName in imagesFileNames)

            {
                //my code
                //IEnumerable<string> imagesFilesNames = FindImages(imagesFolder);
                // it doesn't work!!  
            }

我可以在 foreach 循环中更新 IENumerable 集合吗?

4

2 回答 2

1

欢迎来到Stackoverflow。您不能更改在该循环中迭代的 IEnumerable。

看起来您想递归查找文件:

IEnumerable<string> imagesFileNames = FindImages(imagesFolder, "*.jpg", true);

private IEnumerable<string> FindImages(string dir, string extension, bool isRecursive)
try
{
    foreach (string d in Directory.GetDirectories(dir))
    {
        try
        {
            foreach (string f in Directory.GetFiles(d, extension))
            {
                imagesFileNames.Add(f);
            }
            if (isRecursive) FindImages(d,extension, true);
        }
        catch (Exception)
        {    
        }
    }
}
于 2012-10-29T02:26:15.127 回答
0

谢谢你们。我意识到在你的评论之后,这是一个坏主意。并决定改变我的方法。我用计时器解决了这个问题,按顺序调用图像的名称。

private void timer2_Tick(object sender, EventArgs e)
{
 a++;
 imageFileName = "IMAGES\DB\"+a+".jpg"
\\\my code
}
于 2012-10-29T12:13:50.357 回答