arraylist

giaiphapvba

Administrator
Thành viên BQT
Chúng ta có một topic về mảng , tuy nhiên hôm nay tôi muốn giới thiệu với các bạn một công cụ về mảng rất mạnh. Đó là ArrayList, nó cho phép xóa hoặc thêm phần tử vào mảng, sắp xếp theo thứ tự. Nghe đã thấy hấp dẫn rồi phải không nào. Vậy, ta đi vào chi tiết nhé.

1. Khai báo ArrayList:
Cách 1:
Trong VBE ta thiết định tham chiếu tới C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb (chú ý là tlb, không phải dll nhé).
Khi đó ta có code như sau:
Mã:
Sub mscorlib_v2Test()
    Dim ar1 As New mscorlib.ArrayList
    Dim ar2 As New ArrayList
    'Ở trên ta thấy có hai cách khai báo có tác dụng như nhau
    Call ar1.Add("111")
    Call ar1.Add("222")
    Call ar2.Add("333")
    Debug.Print ar2.Count 'Ghi ra số lượng phần tử trong mảng
    Debug.Print ar1.Count 'Ghi ra số lượng phần tử trong mảng
End Sub
Ở trên ghi là v4.0.30319 nhưng máy tính của mình thì chỉ có v2.0.50727, và mình thấy vẫn chạy bình thường nhé.
Tuy nhiên, chú ý là, dù làm như trên thì khi gõ . cũng không ra gợi ý cho bạn đâu nhé. Vậy thì chẳng thà ta đi theo cách 2.

Cách 2:
Ta dùng cấu trúc sau:
Mã:
Dim ar  As Object   '// Object ArrayList
Set ar = CreateObject("System.Collections.ArrayList")
2. Code ví dụ
Ở đây tôi giới thiệu đoạn code sử dụng các chức năng thông thường của ArrayList:
Mã:
Sub DNET_ArrayListTest1()
    Dim aryList As Object   '// ArrayList Object
    Dim s                   '// Luu gia tri tra ve
    Dim obj     As Object   '// Clone-ban copy cua aryList
    
    '//Su dung Class ArrayList cua .NET Framework
    Set aryList = CreateObject("System.Collections.ArrayList")
    
    '// Them cac phan tu vao mang aryList
    Call aryList.Add("111")
    Call aryList.Add("222")
    Call aryList.Add("333")
    Call aryList.Add("444")

    
    '// Chen them phan tu moi
    aryList.Item(0) = "AAA"
    
    '// Doc gia tri, gán vào biến s
    s = aryList.Item(0)
    
    '// So luong phan tu co trong aryList
    s = aryList.Count
    
    '// Dao nguoc vi tri sap xep trong mang
    Call aryList.Reverse
    
    '// Sap xep lai theo thu tu a b c trong mang
    Call aryList.Sort
    
    '// Xoa phan tu co gia tri la "AAA" trong aryList
    Call aryList.Remove("AAA")
    
    '// Xoa phan tu trong aryList theo index duoc chi dinh
    Call aryList.RemoveAt(0)
    
    '// Copy aryList vao bien obj
    Set obj = aryList.Clone
    aryList.Clear 'Xóa sạch các phần tử có trong arrList
End Sub
Nguồn tham khảo:
 

tuhocvba

Administrator
Thành viên BQT
Tương tự như , nếu chưa cài .net framework thì sẽ không dùng được arraylist.
Dictionary thì không cần yêu cầu này nhưng Dictionary thì không có khả năng sort (sắp xếp) dữ liệu, phải sort qua trung gian excel.
 
Top