vb.net是否有内置函数来检查作为Function
参数传递的用户的未知形状的多维数组是否是锯齿状的?如果是这样,它是什么?
答案 0 :(得分:1)
这里有两个问题。多维数组(定义为Integer(,)
)永远不会“锯齿状”。您可以通过检查数组的Rank来检测到这一点。 GetLowerBound
和GetUpperBound
方法可用于根据需要检查各个维度的长度。
如果您正在查看Jagged数组(即: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
答案 1 :(得分:1)
如果数组是多维的,则它将具有多个维度(因此Array.Rank
属性将为>1
)。如果数组是锯齿状的,那么它将是一个以数组为元素的一维数组(因此它的Array.Rank
属性将为=1
)。