0
我有一个X元素数组,并且我们假设X = 50.如何从Visual Basic中的数组中删除每个第5个元素?
如何删除数组中的每个第5个元素?
因此,最终的结果应该只有40离开,因为每个第五元件取出元件的阵列....
我有一个X元素数组,并且我们假设X = 50.如何从Visual Basic中的数组中删除每个第5个元素?
如何删除数组中的每个第5个元素?
因此,最终的结果应该只有40离开,因为每个第五元件取出元件的阵列....
下面的代码未经测试,但它应该是相当接近,之后的代码已经运行了所有不能被5个元素整除的元素将被包含在数组'strSecond'中。
UPDATE
代码下面现已测试 -
Dim strFirst(49) As String
Dim strSecond() As String
Dim ArrCount As Integer
ArrCount = 0
For i = 1 To 50
strFirst(i - 1) = i
Next
For i = 0 To 49
If (i + 1) Mod 5 <> 0 Then
ReDim Preserve strSecond(ArrCount)
strSecond(ArrCount) = strFirst(i)
ArrCount = ArrCount + 1
End If
Next
For i = 0 To UBound(strSecond)
Debug.Print strSecond(i)
Next
UPDATE II
这将工作多维阵列(仅上限的最后的当您使用Preserve关键字时,可以更改多维阵列中的尺寸) -
Dim strFirst(1, 49) As String
Dim strSecond() As String
Dim ArrCount As Integer
ArrCount = 0
For i = 1 To 50
strFirst(0, i - 1) = i
strFirst(1, i - 1) = i
Next
For i = 0 To 49
If (i + 1) Mod 5 <> 0 Then
ReDim Preserve strSecond(1, ArrCount)
'If you have more than two dimensions could write a loop to do this
'For j = 0 To UBound(strFirst,1) etc
strSecond(0, ArrCount) = strFirst(0, i)
strSecond(1, ArrCount) = strFirst(1, i)
ArrCount = ArrCount + 1
End If
Next
For i = 0 To UBound(strSecond, 2)
Debug.Print strSecond(0, i) + "-" + strSecond(1, i)
Next
这是正确的答案......但我刚刚意识到我的数组是多维的,ReDim Preserve不起作用。每个元素X本身都包含Y元素,我不认为Preserve适用于多维数组。有没有办法做到这一点与多维数组? – phan
我已经更新了处理多维数组的答案。 – ipr101