以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]这是什么错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=9843)

--  作者:puyouliang
--  发布时间:2011/5/10 15:25:00
--  [求助]这是什么错误

我用代码设置了一个集合然后在遍历前又加了一个判断文件是否存在如下:

            For Each cmxh In cmjh
            lj = ProjectPath & "数据\\" & xzm & "\\" & cmxh & ".xls"
            If FileSys.FileExists(lj) Then
            Else

            cmjh.Remove(cmxh)
            MessageBox.show(cmxh & "的数据不存在" )
            End If
            Next
删除了没文件的集体值后再遍历,可是报错了说“集合已修改,可能无法执行枚举操作。

然后就终止了

 

这是什么原因,请老师指导

 


--  作者:狐狸爸爸
--  发布时间:2011/5/10 15:53:00
--  
Dim lst As New List(of String) \'存储要删除的值
For Each cmxh In cmjh
    lj = ProjectPath & "数据\\" & xzm & "\\" & cmxh & ".xls"
    If FileSys.FileExists(lj) Then
    Else
        lst.Add(cmxh)
    End If
Next
For Each s As String In Lst
   cmxh.Remove(s)
Next

--  作者:puyouliang
--  发布时间:2011/5/10 16:04:00
--  
请问老师,存储删除值的作用是不是说在遍历中不能改变自身集合的值啊,而要储起来用另外一个遍历来删除这些值
--  作者:狐狸爸爸
--  发布时间:2011/5/10 16:06:00
--  
是的,遍历过程不能增加删除成员。