我制作了一个能够在网页中下载值的代码,效果很好。由于这些值是实时获取的,也就是说,只有在实际发生变化时才会执行数据下载,如果某个值发生变化,我需要进行数据下载。 然后我创建了一个代码,允许我使用更新的值和具有旧值的数组检查数组的所有元素。 代码实际上检测到给定结果何时发生了变化,但由于某些奇怪的原因,该消息显示为无穷大,好像它被卡在一个不带参数的foor中,这很奇怪。
For Each abc As Country_Data In lista
For Each xyz As Country_Data In vecchia_lista
If abc.casa = xyz.casa And abc.ospite = xyz.ospite Then
If abc.Result <> xyz.Result Then
MsgBox(abc.casa & " - " & abc.ospite & " -- " & abc.Result)
Exit For
End If
End If
Next
Next
变量定义
Dim lista As New List(Of Country_Data)
Dim vecchia_lista As New List(Of Country_Data)
Private Structure Country_Data
Dim casa As String
Dim ospite As String
Dim Result As String
End Structure
如何解决这个问题?
答案 0 :(得分:0)
根据您的评论,我收集您只想看到一个消息框,当它找到第一个结果发生变化的情况时(即使之后可能还有其他情况)。
Exit For
你只使用内部For
循环的退出,因此外部For
循环继续循环,这可能就是你所要做的观察。
您可以这样做:
Dim keepLooping As Boolean = True
For Each abc As Country_Data In lista
For Each xyz As Country_Data In vecchia_lista
If abc.casa = xyz.casa And abc.ospite = xyz.ospite Then
If abc.Result <> xyz.Result Then
MsgBox(abc.casa & " - " & abc.ospite & " -- " & abc.Result)
keepLooping = False
Exit For
End If
End If
Next
If (Not keepLooping) Then Exit For
Next
这样当你想要停止循环时,它会设置布尔标志,外部循环将观察它,导致它也退出。