以文本方式查看主题

-  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=139860)

--  作者:81538475
--  发布时间:2019/8/23 14:56:00
--  [求助]删除集合问题
 For Each dr  As DataRow In drs2
        If dr("上班打卡时间") > "09:30"  AndAlso dr("上班打卡时间") < "09:45" Then
            rin = t2.FindRow(dr)
            If rin-1>0 Then   \'--------判断上一行数据
                If t2.Rows(rin-1)("下班打卡时间") >"22:00" Then
                    drs2.Remove(dr)
                    
                End If
            End If
        End If
    Next
蓝色位置报错了,应该如何修改呢
---------------------------
版本:2019.6.18.1
---------------------------
代码执行出错,错误信息:



System.InvalidOperationException: 集合已修改;可能无法执行枚举操作。

   在 System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)

   在 System.Collections.Generic.List`1.Enumerator.MoveNextRare()

   在 System.Collections.Generic.List`1.Enumerator.MoveNext()

   在 UserCode.Test()
---------------------------
确定   
---------------------------


--  作者:有点蓝
--  发布时间:2019/8/23 15:08:00
--  
集合要倒序删除

for i as integer = dr2.count - 1 ti 0 step -1
dim dr As DataRow = dr1(i)
If dr("上班打卡时间") > "09:30"  AndAlso dr("上班打卡时间") < "09:45" Then
            rin = t2.FindRow(dr)
            If rin-1>0 Then   \'--------判断上一行数据
                If t2.Rows(rin-1)("下班打卡时间") >"22:00" Then
                    drs2.Remove(dr)
                    
                End If
            End If
        End If

next