2014-01-19 64 views
1

我想創建一個數組(或任何其他方法的臨時存儲)來測試以查看某個記錄是否已經存在;如果它是我只想添加記錄到數組 - 如果它沒有我有一個函數來創建一個地圖上的節點,那麼我仍然想要添加記錄到數組。應用函數之前檢查以前的記錄

我有的概念是每個單元只添加一個節點到地圖一次 - 數據庫將只包含unitnumb,lat,long和time(這將是一個日期時間格式)我已經查詢過數據庫並且拉到最近的1000條記錄。

目前我有

  Dim mapcontains() As String = {""} 


       For pop As Integer = 0 To filltab.Rows.Count - 1 
        current = filltab.Rows(pop)("unitnumb") 
        If Array.FindIndex(mapcontains, Function(s) s.Contains(current)) = 0 Then 
         WebBrowser1.Document.InvokeScript("AddMarker", New Object() {"Unit: " & filltab.Rows(pop)("unitnumb") & " at " & filltab.Rows(pop)("time"), filltab.Rows(pop)("lat"), filltab.Rows(pop)("long")}) 

        End If 
        mapcontains(pop) = current 
       Next 

目前我嘗試添加每個項目後陣完成if語句和比較數組,看它是否先前在數據庫中存在,只有在運行addmarker腳本,如果它沒有不。

目前這是行不通的,我該如何做這項工作?

回答

2

如果您需要使用Dictionary(如果您需要與密鑰關聯的單獨數據)或Hashset(如果您不需要),那將會好很多。

例如:

Dim mapcontains As New System.Collections.Generic.HashSet(Of String) 

    For pop As Integer = 0 To filltab.Rows.Count - 1 
     current = filltab.Rows(pop)("unitnumb") 
     If Not mapcontains.Contains(current) Then 
      WebBrowser1.Document.InvokeScript("AddMarker", New Object() {"Unit: " & filltab.Rows(pop)("unitnumb") & " at " & filltab.Rows(pop)("time"), filltab.Rows(pop)("lat"), filltab.Rows(pop)("long")}) 
      mapcontains.Add(current) 
     End If 
    Next 
相關問題