Edukiak
Indizea 🔎︎

# 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:

- Add: Elementu berria txertatzen du bilduman. Aukeran, kate-balio bat definitu daiteke elementuaren gako gisa.

- Count: Bildumako elementu kopurua itzultzen du.

- Item: Bildumako elementu bat itzultzen du, bere indizea edo gakoa pasatuta.

- Remove: Elementu bat bildumatik kentzen du, bere indizearen edo gakoaren bidez.

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

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")

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

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

Erlazionatutako gaiak

Array funtzioa

ScriptForge.Dictionary zerbitzua