填充2列多维数组VB.net

时间:2011-10-28 13:12:27

标签: vb.net arrays dynamic-arrays

我在向多维数组赋值时遇到问题。

我正在尝试构建一个2列无限制的行数组,并使用数据读取器中的数据进行填充。

Dim tblArry(,) As String = {}

If reader.HasRows Then
  While reader.Read()
      ' Call Read before accessing data.
      Dim tempTbl As String = "tblLang" & reader.Item(0)
      Dim tempTblTwoLett As String = reader.Item(1)

      tblArry = New String(tempTbl, tempTblTwoLett)

' Tried this too....
tblArry = {New String(tempTbl, New String(tempTblTwoLett)} 
' and this...
tblArry = New String(tempTbl), New String(tempTblTwoLett)

当我使用Jagged数组时,我可以使用它。 Reader部分工作正常,但编码对于这个问题并不干净。

任何建议都将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

使用List而不是数组。

Dim langs As New List(Of String())()

While reader.Read()
  Dim temp(1) As String
  temp(0) = "tblLang" & reader.Item(0)
  temp(1) = reader.Item(1)

  langs.Add(temp)
End While

.Net区分数组类型和集合类型。数组类型意味着具有固定的大小,因此像你想要的那样追加到最后并不能很好地工作。收藏品意味着更灵活。

无论如何,为什么在世界上你会期望通过分配它来附加到数组的末尾!?您希望最好的是替换整个阵列。