我在向多维数组赋值时遇到问题。
我正在尝试构建一个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部分工作正常,但编码对于这个问题并不干净。
任何建议都将不胜感激。
由于
答案 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区分数组类型和集合类型。数组类型意味着具有固定的大小,因此像你想要的那样追加到最后并不能很好地工作。收藏品意味着更灵活。
无论如何,为什么在世界上你会期望通过分配它来附加到数组的末尾!?您希望最好的是替换整个阵列。