1

我正在使用带有 Visual Basic 的 Visual Studio 2010。我有一个进入函数的动态二维数组。我无法弄清楚如何获得第一行的大小。

例如,假设这个数组被传递到函数中:

{{1, 0, 5, 4},
 {8, 1, 4, 4},
 {0, 1, 4, 4},
 {7, 7, 7, 4},
 {7, 7, 7, 4},
 {8, 1, 4, 4}}

在这个例子中,我会得到 4,因为如果你看例如第一行它有 4 个元素。例如在这种情况下:

{{1, 0, 5, 4, 7, 7},
 {8, 1, 4, 4, 7, 7},
 {0, 1, 4, 4, 8, 8},
 {7, 7, 7, 4, 3, 3},
 {7, 7, 7, 4, 4, 4},
 {8, 1, 4, 4, 1, 9}}

我会回来 6 因为行中有 6 个元素。数组总是 2d 的,并且行总是相同的长度。列大小未知,行大小未知。但是,如果我找出一行的行大小,那么如果有意义的话,所有行都是那个大小。

我试过这个 UBound(inArray, 1) 但它不起作用。请帮我解决这个问题。

4

3 回答 3

2

看看使用Array.GetUpperBound 方法

获取 Array 中指定维度的上限。

于 2012-10-31T03:50:04.377 回答
1
Dim i(,) As Integer = {{1, 0, 5, 4}, {8, 1, 4, 4}, {0, 1, 4, 4}, {7, 7, 7, 4}, {7, 7, 7, 4}, {8, 1, 4, 4}}
MsgBox(i.GetUpperBound(0)) 'first index
MsgBox(i.GetUpperBound(1)) 'second index
MsgBox(UBound(i, 1)) 'first index (UBOUND is 1-based)
MsgBox(UBound(i, 2)) 'second index (UBOUND is 1-based)

对于二维数组i(x,y)GetUpperBound(0)返回 的最大值x,并GetUpperBound(1)返回 的最大值y

于 2012-10-31T03:50:24.717 回答
0

要查找 x 轴的长度,请使用 GetLength 函数。我已经尝试过 GetUpperBound 函数,但有时它被证明有点不可靠。请使用以下代码作为参考:

Dim array(1,10) As Double
Dim x as Integer = array.GetLength(0) - 1 'Will give you value of dimension x'
于 2016-08-18T11:04:17.980 回答