foreach循环中的ienumerable更新
问题描述:
我有这样的代码。foreach循环中的ienumerable更新
IEnumerable<string> imagesFileNames = FindImages(imagesFolder);
foreach(string imageFileName in imagesFileNames)
{
//my code
//IEnumerable<string> imagesFilesNames = FindImages(imagesFolder);
// it doesn't work!!
}
我可以更新foreach循环中的IENumerable集合吗?
答
谢谢大家。我意识到,在你的评论后,这是一个坏主意。 并决定改变我的方法。我用一个定时器来解决它,并按顺序调用 图像的名称。
private void timer2_Tick(object sender, EventArgs e)
{
a++;
imageFileName = "IMAGES\DB\"+a+".jpg"
\\\my code
}
+0
请再次格式化该代码示例.... – SpaceBison
答
欢迎来到*。您无法更改在该循环中迭代的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)
{
}
}
}
你的意思修改的集合,而一个foreach里面是......并通过修改,我的意思是添加或从集合删除一个项目? “ – LightStriker
”它不起作用!!“ - 这是没有帮助的! – zerkms
它为什么不起作用?它是否懒惰? :) –