2015-01-26 5 views
0

웹 사이트에서 가져온 값의 배열 내에 저장할 수있는 시스템을 만들었습니다.이 값은 실시간으로 업데이트됩니다. 이제는 어떤 값이 변경되었는지 확인할 수있는 추가 모드를 구현 중입니다. 먼저 "vecchia_lista"와 같은 것을 다운로드 한 것을 제외하고는 배열의 모든 요소를 ​​비교하여 이전 데이터가 새로운 것과 다른지 확인해야합니다.두 배열의 항목을 비교하는 방법

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 분할 포함 요소 : 갱신 된 값의 함수

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 

I는이 콘텐츠 추천 중첩 루프를했다.
이 루프 전에 나는 새로운 내용으로 기존의 배열을 업데이트 :

vecchia_lista = lista 

내 문제 :

는 이제 배열의 특정 요소가 변경되는 경우 확인하려면 여부, 나는 정직하게 모든 단일 인스턴스를 비교하는 방법을 모릅니다. 나는 목록의 각 요소를 반복하기 위해 만들었고, 나는 이것을하기 위해 당신의 도움을 요청한다.

For Each element In lista 

        Next 

답변

0

사실, 꽤 어려운 질문을 이해한다, 그러나 당신이 키가 {Casa, Ospite} 다른 인 특정 속성이 다른 두 개의 서로 다른 컬렉션을 같은 키를 가진 요소를 찾기 위해 찾고있는 것 같다 속성 Result.

컬렉션 A의 요소를 컬렉션 B의 해당 요소와 일치시키고 값이 Result이 아닌지 확인하려면 Join을 사용하는 것이 좋습니다.

예 :

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 지금 포함 : 항목이 변경

enter image description here

+0

경우에, 당신은 메시지를 표시 할 수 있습니까? – Debug

+0

@Debug 물론입니다. 왜 안돼? – sloth

+0

그러면 <> 조건 바로 뒤에 넣을 수 있습니까? 도움 주셔서 감사합니다. – Debug

관련 문제