2016-04-29 326 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