我创建了一个系统,可以保存在从网站获取的值数组中,这些值会实时更新。现在我正在实现一个能够看到更改值的附加模式。首先是除了下载类似“vecchia_lista”之外的值,然后我会确保比较数组的每个元素,看看旧数据是否与new不同。
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
在更新值的功能中,我有一个像这样内容的嵌套循环:
Dim squadra As Country_Data
With squadra
.casa = Remove_Tags(Team_A(Team).Groups(1).Value)
.ospite = Remove_Tags(Team_B(Team).Groups(1).Value)
.Result = StrScore
End With
lista.Add(squadra)
变量团队A,b,StrScore 包含拆分元素 在此循环之前,我使用新内容更新旧数组:
vecchia_lista = lista
我的问题:
现在我想检查数组中某个元素是否发生了变化,老实说我不知道如何比较每一个实例。我创建了迭代列表中的每个元素,我请求你的帮助。
For Each element In lista
Next
答案 0 :(得分:0)
实际上,很难理解你的问题,但似乎你正在寻找在两个不同的集合中找到具有相同密钥的元素,这些集合在特定属性中有所不同,其中密钥为{Casa, Ospite}
而另一个财产Result
。
我建议使用Join
将集合A中的元素与集合B中的对应元素进行匹配,并检查其Result
属性的值是否不相等。
示例:
Public Class Country_Data
Public Property Casa As String
Public Property Ospite As String
Public Property Result As String
End Class
Sub Main
Dim vecchia_lista = New List(Of Country_Data) From _
{ New Country_Data() With {.Casa = "Team A", .Ospite = "Team B", .Result = "0:0"},
New Country_Data() With {.Casa = "Team C", .Ospite = "Team D", .Result = "0:0"}}
Dim lista = New List(Of Country_Data) From _
{ New Country_Data() With {.Casa = "Team A", .Ospite = "Team B", .Result = "0:0"},
New Country_Data() With {.Casa = "Team C", .Ospite = "Team D", .Result = "1:0"}}
Dim changed_elements = From d1 In vecchia_lista
Join d2 in lista On d1.Casa Equals d2.Casa And
d1.Ospite Equals d2.Ospite
Where d1.Result <> d2.Result
Select New With {.Casa = d1.Casa, .Ospite = d1.Ospite,
.OldResult = d1.Result, .NewResult = d2.Result}
End Sub
changed_elements
现在包含: