数组输出中的引用字典到列表框

reference dictionary within array output to listbox

标题说明了我的问题。

我使用的是 Api(对于垂直响应,电子邮件列表管理器),效果很好。但是对于特定方法 returns 一个数组,其中我需要引用的信息在该数组内的字典中。

Array[list_id, list_name, list_type, member_data] <- member_data 是我所有好东西的字典。

我设法得到的最好的结果是列表框为每个成员输出 "com.verticalresponse.api.NVPair[]"。

代码

Protected Sub GetBounces()
    Dim listID As Integer = 284662333
    Dim isMember As Boolean = False


    Dim newSession As New loginArgs()
    newSession.username = username

    ' Your VerticalResponse username
    newSession.password = password


    newSession.session_duration_minutes = "120"

    Dim VRUser As New VRAPI()

    Try
        sessionID = VRUser.login(newSession)

        Dim GetMembers As New getListMembersArgs()

        Try

            GetMembers.session_id = sessionID
            GetMembers.list_id = listID
            GetMembers.max_records = 8

            Try
                Dim listmembers As Array = VRUser.getListMembers(GetMembers)

                lstBounces.DataSource = listmembers
                lstBounces.DataValueField = ("member_data").ToString()
                lstBounces.DataBind()

            Catch ex As Exception
                lstBounces.Text = "One: " + ex.ToString()
            End Try



        Catch listex As Exception
            lstBounces.Text = "Two: " + listex.ToString()
        End Try

    Catch ex As System.Exception
        lstBounces.Text = "Three: " + ex.ToString()
    End Try

End Sub

编辑

我采纳了 Keith Mifsud 的建议,并在 Databind 之前添加了一个断点。它告诉我 "listmembers" 有八个索引(目前只通过搜索 8 来测试(总列表将接近 8000,其中大约需要 1900。))

这 8 个索引中的每一个都包含我正在查看的 4 列,所以当我使用 listmembers(3) 作为数据源时,我实际上只搜索第四个结果,而不是 member_data 列。 .

是否有正确的方法来引用结果列?

类似于:

lstbounces.DataSource = listmembers( ,3)

但不是那个,一个正确的?

我认为你应该将数据源设置为字典而不是保存它的数组

Try
    Dim listmembers As Array = VRUser.getListMembers(GetMembers)

    lstBounces.DataSource = listmembers(3)
    'As the datasource is a dictionary, I don't think you have to set up the display and value fields
    'lstBounces.DataValueField = ("member_data").ToString()
    lstBounces.DataBind()

 Catch ex As Exception
    lstBounces.Text = "One: " + ex.ToString()
 End Try

更新

根据集合类型(数组每个元素中的字典),我建议您使用允许扩展行的 .net DataView。有一些非常好的教程可以指导您创建视图