從頭開始刪除集合項目

字號:

刪除集合中的所有內(nèi)容有許多方法,其中有些非常得迅速。來看看一個包含10,000個項目的集合:
    Dim col As New Collection, i As Long
    For i = 1 To 10000
     col.Add i, CStr(i)
    Next
    可以從末尾位置為起點刪除集合內(nèi)容,如下:
    For i = col.Count To 1 Step -1
    col.Remove i
    Next
    也可以從開始位置為起點刪除集合內(nèi)容,如下:
    For i = 1 To col.Count Step 1
    col.Remove i
    Next
    試驗證明,后者要快于前者百倍多,比如0.06秒比4.1秒。原因在于:當引用接近末尾位置的集合項目時,VB必須要從第1個項目開始遍歷整個的項目鏈。更有趣的是,如果集合項目的數(shù)量加倍,那么從末尾開始刪除與從頭開始刪除,前者要比后者花費的時間將成倍增長,比如前者是24秒,后者可能為0.12秒這么短!最后提醒您:刪除集合的所有內(nèi)容的最快方法就是“毀滅”它,使用下面的語句: Set col = New Collection
    對于一個包含20,000個項目的集合,上述操作僅僅耗時0.05秒,這比使用最快的循環(huán)操作進行刪除也要快2倍左右。