2016-04-29 323 views
-1

我需要在VB中添加和删除数组末尾的元素。在Java中,如果我有两个方法(向数组添加元素和从数组中删除元素的方法),我会通过创建静态全局变量来完成此操作。每次我调用add方法,我只需插入,然后将一个添加到位置静态变量,然后如果我需要删除一些东西,我会得到该变量,然后从中减去一个。这是我如何将一个元素添加到数组的末尾,并删除数组中的最后一个元素。你可以在VB中以同样的方式去解决这个问题吗?我对VB并不是很熟悉,所以语法会让我失望。任何帮助,将不胜感激。如何在VB中添加和从数组中删除

+0

如果我明白正确的话,您应该使用堆栈,这对于Java也是如此。在VBA中,您可以使用此创建一个 - > Set stack = CreateObject(“System.Collections.Stack”),其中stack是类型对象的变量。 –

+0

https://msdn.microsoft.com/en-us/library/wak0wfyt.aspx#Anchor_10 –

回答

0

除非您可以使用Collection对象,否则没有内置或直接的方法来对数组执行此操作。

Public Sub TestArr() 
    Dim list As New Collection 

    list.Add "John" 
    list.Add "Mary" 
    list.Add "Bob" 

    list.Remove 1 
End Sub 

随着阵列可以使用Preserve关键字,以保持现有的数据ReDim他们。

Public Sub TestArr() 
    Dim list() As Variant 
    'Creates a dynamic list of 10 items 
    ReDim list(1 To 10) 
    Dim i As Long 
    For i = 1 To 10 
     list(i) = "Item" & CStr(i) 
    Next i 

    'Append to the end of an array 
    AppendToArray list, "NotAnItem" 

    'Remove the 5th element 
    RemoveFromArray list, 5 
End Sub 

Public Sub AppendToArray(ByRef list() As Variant, ByVal item As Variant) 
    Dim n As Long 
    n = UBound(list) 
    ' Make Room 
    ReDim Preserve list(1 To n + 1) 
    ' Assign new value 
    list(n + 1) = item 
End Sub 

Public Sub RemoveFromArray(ByRef list() As Variant, ByVal index As Long) 
    Dim n As Long, i As Long 
    n = UBound(list) 
    ' Move last items down by one 
    For i = index To n - 1 
     list(i) = list(i + 1) 
    Next i 
    ReDim Preserve list(1 To n - 1) 
End Sub