Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 集合已修改枚举操作不能执行VB.net_Asp.net_Vb.net - Fatal编程技术网

Asp.net 集合已修改枚举操作不能执行VB.net

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

我有一个子过程,它接受筛选用户集合作为参数,我想从该集合中获取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
      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,而迭代无法添加到正在迭代的集合中…这就是错误的原因。