首页 > 编程 > VBScript > 正文

VBS ArrayList Class vbs中的数组类

2020-06-26 18:08:15
字体:
来源:转载
供稿:网友
Class ArrayList 
 Private items() 
 Private size 

  Private Sub Class_Initialize 
 size = 0 
 ReDim items(1) 
  End Sub 

  Private Sub Class_Terminate 
 items = null 
  End Sub 

 Public Function Add(ByVal value) 
       If (size = Ubound(items)) Then EnsureCapacity((size + 1)) 

       items(size) = value 
       size = size + 1 
       Add = size 
 End Function 

 Public Property Get Item(index) 
  Item = items(index) 
 End Property 

 Public Property Let Item(index, vObject) 
  items(index) = vObject 
 End Property 

 Property Get Count 
  Count = size 
 End Property 


 Public Property Get Capacity() 
  Capacity = Ubound(items) 
 End Property 

 Public Property Let Capacity(value) 
            If (value <> Ubound(items)) Then 
                  If (value < size) Then Err.Rise 6 

                  If (value > 0) Then 
                        ReDim Preserve items(value) 
                  Else 
                        ReDim Preserve items(3) 
                  End If 
            End If 
 End Property 

 Private Sub EnsureCapacity(ByVal min) 
       If (Ubound(items) < min) Then 
      Dim num1 : num1 = IIf((Ubound(items) = 0), 4, (Ubound(items) * 2)) 
      If (num1 < min) Then num1 = min 
      Capacity = num1 
       End If 
 End Sub 


 Private Function IIf(j, r1, r2) 
  IF (j) Then 
   IIf = r1 
  Else 
   IIf = r2 
  End IF 
 End Function 

End Class 


示例: 

Dim al : Set al = new ArrayList 
al.Add(1) 
al.Add(2) 
al.Add(3) 
al.Add(4) 
al.Add(5) 
al.Add(6) 
al.Add(7) 
al.Add(8) 
al.Add(9) 
al.Add(10) 

For i = 0 To al.Count -1 
 w("Index"& i &": "& al.Item(i)) 
Next 

w("Count: "& al.Count) 
w("Capacity: "& al.Capacity) 

Sub w(o) 
Response.Write(o &"<br />") 
End Sub
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表