Asp.net 集合已修改枚举操作不能执行VB.net
我有一个子过程,它接受筛选用户集合作为参数,我想从该集合中获取userID的值,我可以看到它成功地添加了第一个userID,但在下一个过程中它引发了一个异常Asp.net 集合已修改枚举操作不能执行VB.net,asp.net,vb.net,Asp.net,Vb.net,我有一个子过程,它接受筛选用户集合作为参数,我想从该集合中获取userID的值,我可以看到它成功地添加了第一个userID,但在下一个过程中它引发了一个异常 Private Sub GetUserID(ByRef filteredusers As Business.HR.UserCollection) If filteredusers IsNot Nothing Then For Each uIDs As Business.HR.User In filteredusers
Private Sub GetUserID(ByRef filteredusers As Business.HR.UserCollection)
If filteredusers IsNot Nothing Then
For Each uIDs As Business.HR.User In filteredusers
filteredusers.Add(uIDs.UserId)
Next
'exception here as System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
End If
End Sub
请帮助出现此异常的原因是您正在修改正在迭代的集合 您有两个选择:
1. Create a separate variable to store the values in.
Private Sub GetUserID(ByRef filteredusers As Business.HR.UserCollection)
dim myFilter as new Business.HR.UserCollection
If filteredusers IsNot Nothing Then
For Each uIDs As Business.HR.User In filteredusers
myFilter.Add(uIDs.UserId)
Next
End If
filteredusers = myFilter
End Sub
Private Sub GetUserID(ByRef filteredusers As Business.HR.UserCollection)
dim myFilter as Business.HR.UserCollection = filteredusers
If filteredusers IsNot Nothing Then
For Each uIDs As Business.HR.User In myFilter
filteredusers.Add(uIDs.UserId)
Next
End If
End Sub
我不完全确定我是否理解了这个问题,因为解释基本上在错误消息中;您正在尝试修改正在枚举的集合我只是尝试从filterusers集合(它有许多属性,如用户名、用户ID、位置ID)中检索用户ID,而迭代无法添加到正在迭代的集合中…这就是错误的原因。