我有这样的代码。
IEnumerable<string> imagesFileNames = FindImages(imagesFolder);
foreach(string imageFileName in imagesFileNames)
{
//my code
//IEnumerable<string> imagesFilesNames = FindImages(imagesFolder);
// it doesn't work!!
}
我可以在foreach循环中更新IENumerable集合吗?
答案 0 :(得分: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)
{
}
}
}
答案 1 :(得分:0)
谢谢大家。我意识到,在你的评论之后,这是一个坏主意。 并决定改变我的方法。我用定时器解决了这个问题 图像的名称按顺序排列。
private void timer2_Tick(object sender, EventArgs e)
{
a++;
imageFileName = "IMAGES\DB\"+a+".jpg"
\\\my code
}