[英]How to compare item of two array
我創建了一個系統,該系統可以保存從網站獲取的一系列值中,這些值是實時更新的。 現在,我正在實現一種附加模式,該模式可以查看更改的值。 首先,除了下載諸如“ vecchia_lista”之類的值外,我將確保比較數組的每個元素,看看舊數據與新數據是否不同。
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)
變量Team A,b,StrScore包含拆分元素。
在此循環之前,我用新內容更新了舊數組:
vecchia_lista = lista
我的問題:
現在,我想檢查數組中的某個元素是否已更改,老實說,我不知道如何比較每個實例。 我創建的目的是要遍歷列表中的每個元素,因此請您的幫助。
For Each element In lista
Next
實際上,很難理解您的問題,但是似乎您正在尋找的是在兩個具有不同屬性的集合中找到具有相同鍵的元素,這些鍵的特定屬性不同,其中鍵為{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
包含:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.