我有一个用 Visual Basic 编写的 For Each 循环,它试图修改它正在迭代的表。这导致“”集合被修改;枚举操作可能无法执行”异常。
令人沮丧的是,我试图复制我正在使用的所有对象,并且只从副本中删除,但异常仍然发生。
我知道这是由于我使用了 For Each 循环而不是 For 或 While 循环,但我无法重写我的代码并使其工作(我更熟悉 C#)。这就是我决定在这里寻求帮助的原因。
这是我的代码。我如何重写才能删除我希望删除的行?任何帮助和代码将不胜感激!
Dim drAcademicRecord, drSchool As DataRow
For Each drSchool In dsR.Tables("School").Rows
If drSchool("OrganizationName") = "NA" Then
For Each drAcademicRecord In dsR.Tables("AcademicRecord").Rows
If drAcademicRecord("AcademicRecord_Id") = drSchool("AcademicRecord_Id") Then
dsR.Tables("AcademicRecord").Rows.Remove(drAcademicRecord) '<-- This is the line causing my exception
End If
Next
End If
Next