2010-01-07 169 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