Collection objektua

Bildumak mota askotako elementuak biltegiratzeko erabili daitezke. Elementu bakoitza bere indizearen bidez edo aukerako gako baten bidez atzitu daiteke.

Collection objektuek honako metodoak dituzte:

note

Bilduma bateko elementuak atzitzeko, bere indizeak (dimentsio bakarreko matrize gisa) edo lotutako gakoak erabili daitezke.


tip

ScriptForge Dictionary zerbitzuak Collection objektua hedatzen du. Eginbide gehigarriak ematen ditu, adibidez gakoak atzitzea eta ordeztea, edo Array objektuak eta JSON kateak inportatzea/esportatzea.


Bilduma bat sortzea

Collection bat sortzeko, erabili New gako-hitza. Hurrengo adibideak Collection objektu bat sortzen du eta hiru elementurekin betetzen du:


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

Elementuak gehitzea

Add metodoak elementu berriak gehitzen dizkio Collection objektuari.

Sintaxia:

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

Parametroak:

item: Collection bildumari gehituko zaion elementua. Edozein motatakoa izan daiteke.

key: Balio hau identifikatzeko erabiliko den gako bakarrra den kate-balioa.

before, after: Aukerako gako-hitza, elementu berria Collection objektuko zein tokitan kokatuko den adierazten duena. Bi argumentuetako bakarra, before edo after zehaztu daiteke aldi berean. Elementu berria zein indizeren edo gakoren aurretik (edo ondoren) kokatuko den zehazten du.

Adibidea:

Beheko adibidean, bi elementu gehitzen zaizkio Collection bati. Lehenak gako bat du lotuta, eta bigarrenak ez du.


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

Add metodoak gako-hitzak diren argumentuak ere onartzen ditu:


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

Gakoek bakarrak izan behar dute Collection objektu batean. Gakoen arteko konparazioek maiuskulak/minuskulak bereizten dituzte. Gako bikoiztuak gehitzen badira, exekuzio-garaiko errore bat gertatuko da.


Beheko adibidean, before eta after gako-hitzak erabiltzen dira gehitzen den elementuaren kokagunea zehazteko.


    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
  
note

Collection objektu bateko elementuei osoko zenbakia den indize-balio bat esleitzen zaie, 1 zenbakitik hasita. Indize hori elementuak gehitu diren ordenaren araberakoa da.


Elementuak atzitzea

Erabili Item metodoa elementu jakin bat bere indizearen edo gakoaren bidez atzitzeko.

oCollection.Item(index)

oCollection.Item(key)

Parametroak:

index: Osoko balio bat, itzuliko den elementuaren indizea zehazten duena.

key: Kate-balio bat, itzuliko den elementuaren gakoa zehazten duena.

Adibidea:


    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
  

Elementuak kentzea

Erabili Remove metodoa Collection objektu bateko elementuak ezabatzeko.

Sintaxia:

Elementuak beren indizea erabiliz edo beren gako-balioa erabiliz kendu daitezke.

oCollection.Remove(index)

oCollection.Remove(key)

Parametroak:

index: Osoko balio bat, ezabatuko den elementuaren indizea zehazten duena.

key: Kate-balio bat, ezabatuko den elementuaren gakoa zehazten duena.

Adibidea:


    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
  

Elementu guztietan iteratzea

Posible da For Each ... Next instrukzioa erabiltzea Collection objektu bateko elementu guztietan iteratzeko.


    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
  

Bilduma bat garbitzea

Collection objektu bateko elementu guztiak kentzeko, deitu Remove metodoari elementu bakoitzerako, beheko adibidean erakusten den moduan:


    ' Sortu bi sarrera dituen adibideko Collection bat
    Dim myCollection as New Collection
    myCollection.Add(item := 10, key := "A")
    myCollection.Add(item := 11, key := "B")
    MsgBox myCollection.Count ' 2
    ' Bildumako elementu guztiak kentzen ditu
    For i = myCollection.Count To 1 Step -1
    	myCollection.Remove(i)
    Next i
    MsgBox myCollection.Count ' 0
  

Emaguzu laguntza!