-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

スタックオーバーフローへようこそ。そのループで反復する 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 に答える