1

vb.net 是否具有内置函数来检查作为Function参数传递的用户的未知形状的多维数组是否是锯齿状的?如果是这样,它是什么?

4

2 回答 2

1

这里有两个问题。多维数组(定义为Integer(,))永远不会“锯齿状”。您可以通过检查数组的Rank来检测这一点。GetLowerBoundGetUpperBound方法可用于根据需要检查各个维度的长度。

如果您要查看Integer()()锯齿状数组(即:)是否已完全初始化,并且每个子数组的长度相同(即:确定锯齿状数组是否是“逻辑上”矩形),您可以使用类似:

Dim initializedToSameLengths As Boolean
If theArray(0) Is Nothing Then
   ' If first element is null, check for all others being null
   initializedToSameLengths = theArray.All(Sub(a) a = Nothing)
Else
   Dim firstLength = theArray(0).Length
   initializedToSameLengths = theArray.All(Sub(a) a <> Nothing AndAlso a.Length = firstLength)
End If
于 2013-07-09T19:50:26.300 回答
1

如果数组是多维的,它将具有多于 1 个维度(因此Array.Rank属性将为>1)。如果数组是锯齿状的,它将是一个以数组为元素的一维数组(因此它的Array.Rank属性将为=1)。

于 2013-07-09T19:50:27.157 回答