2011-10-28 154 views
0

我有問題,將值分配給多維數組。填充2列多維數組VB.net

我正在嘗試構建一個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) 

當我使用鋸齒陣列時,我可以得到這個工作。 Reader部分工作得很好,但編碼對於這個問題並不乾淨。

任何建議,將不勝感激。

謝謝

回答

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區分數組類型和集合類型。數組類型意味着具有固定的大小,所以像你想要做的那樣附加到最後,效果不佳。集合意味着更加靈活。

無論如何,爲什麼在世界上你會期望通過分配給它追加到數組的末尾!?你可以希望的最好的就是你替換整個陣列。

+0

這實際上是在一個while循環中,我只是構建了數組元素數量未知的數組。我打算使用REDIM PRESERVE來防止覆蓋陣列。我會嘗試列表,看看它是否有意義。謝謝, – htm11h

+0

謝謝喬爾,這應該工作。我真的很感謝這裏的幫助! – htm11h

+0

如果我需要一個可靠的二維數組,我該怎麼做? – Behzad