2010-01-07 199 views
2

我有這個二維數組:如何從二維數組中獲得數組的維數?

Private _Chars As String(,) = {{"`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "="}, 
            {"¬", "!", """", "£", "$", "%", "^", "&", "*", "(", ")", "_", "+"}} 

我想傳遞一個維度(即第一行)到一個功能,或者第二行成一個功能,這兩個列表之間進行切換,以便該功能只需要一個String()參數不爲String()參數,所以我可以通過兩個像這樣的循環:!

Sub Example(Row as String()) 
    For Index as Integer = 0 To Row.Count - 1 
    MessageBox.Show(Row(Index)) 
    Next 
End Sub 

而這個函數將循環儘管12345等和「£$%等 如果有辦法讓陣列能夠正常工作,並且可以在Silverlight中使用 - 我會非常感激!

回答

2

你不能這麼做(很容易)。你最好的選擇是創建一個交錯數組(數組的數組)是這樣的:

Private _Chars String()() = { New String() {"`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "="}, 
New String() {"¬", "!", """", "£", "$", "%", "^", "&", "*", "(", ")", "_", "+"}} 

然後,您可以打電話給你的函數是這樣的:

Example(_Chars(0)) 
Example(_Chars(1)) 
+0

P.S.對不起,如果我的語法關閉,這是多年以來,我用VB.NET – Rory 2010-01-07 22:32:57

+0

是的,這是我發現的數組 - 我以前從未使用過,因爲這種用法之前從未出現過。但是我不太清楚如何使用它們 - 所以感謝這個例子! – RoguePlanetoid 2010-01-08 09:53:58

0

您可以改用jagged array

+0

猜你沒有得到任何道具回答第一。 – RedDeckWins 2010-01-07 22:41:51

+0

感謝這與其他答案一樣,我仍然在查找這個主題,並發現這種類型的數組 - 只是他們如何工作的幾個例子,所以感謝這無論如何,因爲我可能錯過了它。 – RoguePlanetoid 2010-01-08 09:55:13