在应用函数之前检查先前的记录

时间:2014-01-19 00:16:08

标签: vb.net

我正在尝试创建一个数组(或任何其他临时存储方法)来测试以查看某个记录是否已经存在;如果是的话我只想将记录添加到数组中 - 如果没有,我有一个在地图上创建节点的功能,那么我仍然想将记录添加到数组中。

我的概念是只为一个地图添加一个节点,每个单元只有一次 - 数据库只包含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脚本。

目前这不起作用,我该怎么做呢?

1 个答案:

答案 0 :(得分: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