1

VisualBasicでVisualStudio2010を使用しています。関数に入ってくる動的な2次元配列があります。最初の行のサイズを取得する方法がわかりません。

たとえば、この配列が関数に渡されたとします。

{{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つ返されます。配列は常に2次元であり、行は常に同じ長さです。列サイズは不明で、行サイズは不明です。しかし、1つの行の行サイズを見つけた場合、それが理にかなっている場合は、すべての行がそのサイズになります。

このUBound(inArray、1)を試しましたが、機能しません。これを理解するのを手伝ってください。

4

3 に答える 3

2

Array.GetUpperBoundメソッドの使用をご覧ください

配列内の指定された次元の上限を取得します。

于 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)

2D配列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 に答える