vb.net 是否具有内置函数来检查作为Function
参数传递的用户的未知形状的多维数组是否是锯齿状的?如果是这样,它是什么?
user1382306
问问题
276 次
2 回答
1
这里有两个问题。多维数组(定义为Integer(,)
)永远不会“锯齿状”。您可以通过检查数组的Rank来检测这一点。GetLowerBound
和GetUpperBound
方法可用于根据需要检查各个维度的长度。
如果您要查看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 回答