日期:2021年04月27日
作者:Commas
注釋:VB6的集合,有點數組的味道,但是卻比數組豐富;有點字典的身影,但是卻比字典輕巧……
文章目錄
- 一、集合的定義與說明
- 二、集合的定義與執行個體化
- 三、集合的屬性與方法
-
- 1) `Add`
- 2)`Count`
- 3)`Item`
- 4)`Remove`
- 四、集合的示範代碼
- 五、集合的兩種周遊方法
-
- 1)Index周遊法
- 2)Key周遊法
一、集合的定義與說明
集合(Collection) 對象
是項目所組成的有序集合,可以把這個集合作為單元來引用。
說明:
1、Collection 對象提供了簡便方法,将一組相關的項目(Item)視為單一對象來引用。
2、集合中的項目或成員被這樣一個事實聯系起來:它們都屬于這個集合。
3、集合的成員不一定都是同一種資料類型的。
二、集合的定義與執行個體化
NO1:先聲明,後執行個體化 一個Collection對象
'1)聲明一個集合的變量
Dim clnA As Collection
'2)執行個體一個集合對象
Set clnA = New Collection
NO2:先聲明,後執行個體化 一個Collection對象
'聲明并執行個體化一個集合對象
Dim clnA As New Collection
三、集合的屬性與方法
屬性與方法 | 說明 |
---|---|
| 添加一個成員到 Collection 對象 |
| 傳回 Long(長整數),包含集合中的對象數目。隻讀 |
| 利用位置(Index)或鍵(Key)傳回 Collection 對象的指定成員 |
| 把成員從 Collection 對象中删除。 |
1) Add
Add
1、文法說明:
object.Add item, [key], [before], [after]
2、參數說明:
參數 | 說明 |
---|---|
| 必需的,任意類型的表達式,指定要添加到集合中的成員 |
| 可選的,唯一字元串表達式,指定可以使用的鍵字元串,代替位置索引來通路集合中的成員,有點字典的身影 |
| 可選的。表達式(Index 或 Key),指定集合中的相對位置。在集合中将添加的成員放置在 before 參數識别的成員之前 |
| 可選。表達式(Index 或 Key),指定集合中的相對位置。在集合中将添加的成員放置在 After 參數識别的成員之後 |
注意:
1、集合的Index是從
開始的,而不是數組的索引從
1
開始;
2、
或
before
中的Index必須是介于
after
和集合
1
屬性值之間的值;
Count
2) Count
Count
文法說明:
object.Count
3) Item
Item
1、文法說明:
object.Add item, [key], [before], [after]
2、參數說明:
參數 | 說明 |
---|---|
Index | 必要。為一表達式,指定集合中成員的位置 |
注意:
1、如果
Index
是數值表達式,那麼index 必須是從 1 到集合 Count 屬性值之間的數值;
2、如果
是字元串表達式,那麼index必須和key參數對應。若key不存在,則會導緻錯誤發生;
Index
4) Remove
Remove
1、文法說明:
object.Add item, [key], [before], [after]
2、參數說明:
參數 | 說明 |
---|---|
Index | 必要。為一表達式,指定集合中成員的位置 |
注意:
1、如果
Index
是數值表達式,那麼index 必須是從 1 到集合 Count 屬性值之間的數值;
2、如果
是字元串表達式,那麼index必須和key參數對應。若key不存在,則會導緻錯誤發生;
Index
四、集合的示範代碼
1、代碼示範:
Option Explicit
Private Sub Form_Load()
'聲明并執行個體化一個集合對象
Dim clnA As New Collection
'1)Add:添加成員
clnA.Add 1, "intA"
clnA.Add 2, "intB"
clnA.Add 3
clnA.Add "aaa"
clnA.Add "bbb", "sB"
clnA.Add "ccc"
'2)Count:查詢集合的對象數目
'Dim lngCount As Long
'lngCount = clnA.Count
Debug.Print clnA.Count
'3)Item:查詢某個成員
Debug.Print "clnA(1)=" & clnA(1)
Debug.Print "clnA(sB)=" & clnA("sB")
'4)Remove:移除某個成員
'4-1)Remove Index
clnA.Remove 1
'4-2)Remove Key
clnA.Remove "intB"
clnA.Remove "sB"
End Sub
2、結果輸出:
6
clnA(1)=1
clnA(sB)=bbb
五、集合的兩種周遊方法
1)Index周遊法
1、示範代碼:
Option Explicit
Private Sub Form_Load()
'聲明并執行個體化一個集合對象
Dim clnA As New Collection
clnA.Add 1, "intA"
clnA.Add 2, "intB"
clnA.Add 3
clnA.Add "aaa"
clnA.Add "bbb", "sB"
clnA.Add "ccc"
'Index周遊法
Dim i As Long
For i = 1 To clnA.Count
Debug.Print "clnA (" & i & ")=" & clnA(i)
Next i
End Sub
2、結果輸出:
clnA (1)=1
clnA (2)=2
clnA (3)=3
clnA (4)=aaa
clnA (5)=bbb
clnA (6)=ccc
2)Key周遊法
1、示範代碼:
Option Explicit
Private Sub Form_Load()
'聲明并執行個體化一個集合對象
Dim clnA As New Collection
clnA.Add 1, "intA"
clnA.Add 2, "intB"
clnA.Add 3
clnA.Add "aaa"
clnA.Add "bbb", "sB"
clnA.Add "ccc"
'Key周遊法
Dim vK As Variant
For Each vK In clnA
Debug.Print vK
Next
End Sub
2、結果輸出:
1
2
3
aaa
bbb
ccc
版權聲明:本文為部落客原創文章,如需轉載,請給出:
原文連結:https://blog.csdn.net/qq_35844043/article/details/116198240