ອັອບເຈັກຄໍເລັກຊັນ (Collection Object)

ເນື້ອໃນ

# ອັອບເຈັກຄໍເລັກຊັນ

ຄໍເລັກຊັນສາມາດໃຊ້ເພື່ອຈັດເກັບລາຍການປະເພດຕ່າງໆ. ແຕ່ລະລາຍການສາມາດເຂົ້າເຖິງໄດ້ໂດຍຜ່ານດັດຊະນີ ຫຼື ໂດຍຄີ (key) ທາງເລືອກທີ່ກ່ຽວຂ້ອງກັບມັນ.

ອັອບເຈັກ Collection ມີເມທອດ (methods) ດັ່ງຕໍ່ໄປນີ້:

- Add: ແຊກລາຍການໃໝ່ເຂົ້າໃນຄໍເລັກຊັນ. ສາມາດກຳນົດຄ່າຂໍ້ຄວາມເປັນຄີ (key) ໃຫ້ກັບລາຍການໄດ້.

- Count: ສົ່ງຄືນຈຳນວນລາຍການທັງໝົດໃນຄໍເລັກຊັນ.

- Item: ສົ່ງຄືນລາຍການໃນຄໍເລັກຊັນໂດຍການລະບຸດັດຊະນີ ຫຼື ຄີ.

- Remove: ລຶບລາຍການທີ່ລະບຸອອກຈາກຄໍເລັກຊັນໂດຍໃຊ້ດັດຊະນີ ຫຼື ຄີ.

ລາຍການໃນຄໍເລັກຊັນສາມາດເຂົ້າເຖິງໄດ້ທັງຜ່ານດັດຊະນີ (ຄືກັນກັບອາເຣມິຕິດຽວທີ່ເລີ່ມຈາກ 1) ຫຼື ຜ່ານຄີທີ່ກ່ຽວຂ້ອງ.

ບໍລິການ ScriptForge Dictionary ໄດ້ຂະຫຍາຍຄວາມສາມາດຂອງອັອບເຈັກ Collection ໂດຍການເພີ່ມຄຸນສົມບັດຕ່າງໆ ເຊັ່ນ ການດຶງຂໍ້ມູນ ແລະ ການປ່ຽນແທນຄີ, ລວມທັງການນຳເຂົ້າ/ສົ່ງອອກເປັນອັອບເຈັກອາເຣ (Array) ແລະ ຂໍ້ຄວາມ JSON.

## ການສ້າງຄໍເລັກຊັນ

ເພື່ອສ້າງ Collection ໃຫ້ໃຊ້ຄຳຫຼັກ New. ຕົວຢ່າງຕໍ່ໄປນີ້ຈະສ້າງອັອບເຈັກ Collection ແລະ ເພີ່ມລາຍການເຂົ້າໄປ 3 ລາຍການ:

        Dim myCollection as New Collection
        myCollection.Add("Some text")
        myCollection.Add(100)
        myCollection.Add(Array(1, 2, 3, 4))
        MsgBox myCollection.Count ' 3

## ການເພີ່ມລາຍການ

ເມທອດ Add ສາມາດໃຊ້ເພື່ອເພີ່ມລາຍການໃໝ່ເຂົ້າໃນອັອບເຈັກ Collection.

### ໄວຍາກອນ:

oCollection.Add(item, [key], [before|after])

### ພາຣາມິເຕີ:

item: ລາຍການທີ່ຈະເພີ່ມເຂົ້າໃນ Collection. ສາມາດເປັນປະເພດໃດກໍໄດ້.

key: ຄ່າຂໍ້ຄວາມທີ່ໃຊ້ເປັນຄີທີ່ບໍ່ຊ້ຳກັນເພື່ອລະບຸຄ່ານີ້.

before, after: ອາກິວເມັນທາງເລືອກທີ່ລະບຸວ່າລາຍການໃໝ່ຈະຖືກວາງໄວ້ບ່ອນໃດໃນ Collection. ສາມາດລະບຸໄດ້ພຽງແຕ່ before ຫຼື after ຢ່າງໃດຢ່າງໜຶ່ງ ເພື່ອກຳນົດດັດຊະນີ ຫຼື ຄີ ທີ່ລາຍການໃໝ່ຈະຖືກວາງໄວ້ກ່ອນໜ້າ ຫຼື ຖັດຈາກນັ້ນ.

### ຕົວຢ່າງ:

ຕົວຢ່າງລຸ່ມນີ້ຈະເພີ່ມ 2 ອົງປະກອບເຂົ້າໃນ Collection. ອັນທຳອິດມີຄີກ່ຽວຂ້ອງ, ສ່ວນອັນທີສອງແມ່ນບໍ່ມີ.

        Dim myCollection as New Collection
        myCollection.Add(100, "first")
        myCollection.Add(101)

ເມທອດ Add ຍັງຮອງຮັບອາກິວເມັນແບບຄຳຫຼັກ (keyword arguments):

        myCollection.Add(item := 100, key := "first")

ຄີ (Keys) ຕ້ອງບໍ່ຊ້ຳກັນໃນອັອບເຈັກ Collection. ການປຽບທຽບຄີແມ່ນ ບໍ່ສົນໃຈຕົວອັກສອນໃຫຍ່-ນ້ອຍ. ການເພີ່ມຄີທີ່ຊ້ຳກັນຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດໃນເວລາເຮັດວຽກ (runtime error).

ຕົວຢ່າງລຸ່ມນີ້ສະແດງວິທີໃຊ້ Before ແລະ After ເພື່ອກຳນົດຕຳແໜ່ງຂອງລາຍການທີ່ກຳລັງເພີ່ມ.

        Dim myCollection as Variant
        myCollection = New Collection
        myCollection.Add(item := 101, key := "first")
        myCollection.Add(item := 103, key := "third")
        myCollection.Add(item := 105, key := "fifth")
        MsgBox myCollection.Item(2) ' 103
        myCollection.Add(item := 102, key := "second", before := "third")
        MsgBox myCollection.Item(2) ' 102
        myCollection.Add(item := 104, key := "fourth", after := 3)
        MsgBox myCollection.Item(4) ' 104

ລາຍການໃນອັອບເຈັກ Collection ຈະຖືກກຳນົດຄ່າດັດຊະນີເປັນໂຕເລກຈຳນວນຖ້ວນ ເລີ່ມຈາກ 1 ຕາມລຳດັບການເພີ່ມ.

## ການເຂົ້າເຖິງລາຍການ

ໃຊ້ເມທອດ Item ເພື່ອເຂົ້າເຖິງລາຍການທີ່ກຳນົດໂດຍດັດຊະນີ ຫຼື ຄີ.

oCollection.Item(index)

oCollection.Item(key)

### ພາຣາມິເຕີ:

index: ຄ່າໂຕເລກຈຳນວນຖ້ວນທີ່ລະບຸດັດຊະນີຂອງລາຍການທີ່ຈະສົ່ງຄືນ.

key: ຄ່າຂໍ້ຄວາມທີ່ລະບຸຄີຂອງລາຍການທີ່ຈະສົ່ງຄືນ.

### ຕົວຢ່າງ:

        Dim myCollection as New Collection
        myCollection.Add(item := 101, key := "A")
        myCollection.Add(item := 102, key := "B")
        myCollection.Add(item := 103, key := "C")
        MsgBox myCollection.Item("A") ' 101
        MsgBox myCollection.Item(3)   ' 103

## ການລຶບລາຍການ

ໃຊ້ເມທອດ Remove ເພື່ອລຶບລາຍການອອກຈາກອັອບເຈັກ Collection.

### ໄວຍາກອນ:

ລາຍການສາມາດລຶບອອກໄດ້ທັງໂດຍໃຊ້ດັດຊະນີ ຫຼື ຄ່າຄີ.

oCollection.Remove(index)

oCollection.Remove(key)

### ພາຣາມິເຕີ:

index: ຄ່າໂຕເລກຈຳນວນຖ້ວນທີ່ລະບຸດັດຊະນີຂອງລາຍການທີ່ຈະລຶບ.

key: ຄ່າຂໍ້ຄວາມທີ່ລະບຸຄີຂອງລາຍການທີ່ຈະລຶບ.

### ຕົວຢ່າງ:

        Dim myCollection as New Collection
        myCollection.Add(item := 101, key := "first")
        myCollection.Add(item := 102, key := "second")
        myCollection.Add(item := 103, key := "third")
        MsgBox myCollection.Count ' 3
        ' Removes the  first value
        myCollection.Remove(1)
        ' Removes the value whose key is "third"
        myCollection.Remove("third")
        MsgBox myCollection.Count ' 1

## ການວົນຮອບລາຍການທັງໝົດ

ສາມາດໃຊ້ຄຳສັ່ງ For Each ... Next ເພື່ອວົນຮອບເຂົ້າເຖິງທຸກລາຍການໃນ Collection.

        Dim myCollection as New Collection
        myCollection.Add(item := 101, key := "A")
        myCollection.Add(item := 102, key := "B")
        myCollection.Add(item := 103, key := "C")
        For Each value In myCollection
            MsgBox value
        Next value

## ການລຶບຂໍ້ມູນທັງໝົດໃນຄໍເລັກຊັນ

ເພື່ອລຶບລາຍການທັງໝົດອອກຈາກອັອບເຈັກ Collection ໃຫ້ຮຽກໃຊ້ເມທອດ Remove ສຳລັບແຕ່ລະລາຍການ, ດັ່ງທີ່ສະແດງໃນຕົວຢ່າງລຸ່ມນີ້:

        ' ສ້າງຕົວຢ່າງຄໍເລັກຊັນທີ່ມີ 2 ລາຍການ
        Dim myCollection as New Collection
        myCollection.Add(item := 10, key := "A")
        myCollection.Add(item := 11, key := "B")
        MsgBox myCollection.Count ' 2
        ' ລຶບລາຍການທັງໝົດໃນຄໍເລັກຊັນ
        For i = myCollection.Count To 1 Step -1
        	myCollection.Remove(i)
        Next i
        MsgBox myCollection.Count ' 0

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ຟັງຊັນ Array

ບໍລິການ ScriptForge.Dictionary

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!