如何使用vb在asp.net中的多维数组中选择特定索引

时间:2015-06-18 11:33:34

标签: asp.net arrays vb.net multidimensional-array

我无法在标题中解释清楚所以我在这里解释一下情景:

在这里,我有一个将放在数组中的查询。

 Dim arrUsers As Object = {{sqlReader("dephead"), dropdown1}, {sqlReader("mm"), dropdown2}

如果匹配我的if else条件,我想启用下拉对象:

'indexes1= the 1st indexes of each pair in the array (the sqlReaders)
'indexes2= my dropdown objects in my user control

For Each indexes1 In arrUsers
            If Session.Item("EmployeeID") = indexes1 Then
                indexes2.Enabled = True
            End If
Next

所以假设我的会话ID是" dephead",然后dropdown1将被启用。多数民众赞成我想要发生的事情,但我不熟悉阵列,所以请帮助我。感谢。

2 个答案:

答案 0 :(得分:1)

这应该有效:

For i As Integer = 0 to arrUsers.GetUpperBound(0)
    If Session.Item("EmployeeID") = arrUsers(i)(0) Then
        arrUsers(i)(1).Enabled = True
    End If
Next

您只需为数组赋予两个索引而不是一个。例如arrUsers(0)(1)。第一个索引返回该索引处的对象,第二个索引返回先前返回的数组内的对象。 arrUsers(0)(1)将首先在0索引({sqlReader("dephead"), dropdown1})处获取数组,然后在索引1(dropdown1)处获取对象。

答案 1 :(得分:0)

这回答了我的问题。上面的答案帮助了我,我只是改变了我的数组的声明并改变了一些语法。

Dim arrUsers(,) As Object =
    New Object(,) {
                                 {sqlReader("dephead"), dropdown1}, _
                                 {sqlReader("mm"), dropdown2}, _
                                 }

        Dim bound0 As Integer = arrUsers.GetUpperBound(0)
        Dim bound1 As Integer = arrUsers.GetUpperBound(1)

For i As Integer = 0 To bound0

                If Session.Item("EmployeeID") = arrUsers(i, 0) Then
                    arrUsers(i, 1).Enabled = True
                End If

Next