对象数组在ReDim上的元素类型上抛出错误

时间:2012-03-23 18:54:57

标签: vb.net arrays

我一直在尝试为定义如下的对象数组赋值...

Dim englishTextAry As Object(,) = New Object(,) {}

我正在循环访问dataReader并尝试使用以下代码将值分配给此数组....

While rdr.Read()
    Dim recID As String = rdr.Item(0)
    Dim dataVal As String = rdr.Item(1)

    ReDim Preserve englishTextAry(recID, dataVal)

End While

但ReDim在dataVal上抛出的错误不是整数。

我在这里做错了什么?有人能指出我正确的方向吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

你会为非少量的行做一些可怕的ReDims。您可以使用Class来保存id-value对和一个列表来保存它们:

Module Module1

    Class IdValPair
        Property RecId As String
        Property DataVal As String
    End Class

    Sub Main()
        Dim myItems As New List(Of IdValPair)
        '...
        While rdr.Read
            myItems.Add(New IdValPair With {.RecId = rdr.Item(0), .DataVal = rdr.Item(1)})
        End While

    End Sub

End Module

...并回答你的问题,ReDim语句将ReDim的大小数字取为。

答案 1 :(得分:-1)

查看ArrayList对象。我通常使用它来动态添加/获取值,使代码比普通数组容易得多。