Sisältö - Array taulukot - Array luokka - BitArray

Array - taulukot

Vb.net taulukot eroavat jonkin verran VB6 taulukoista.
Aiheet:
EsittelyKokoObjektitFor EachSijoitus

Esittely ja alustaminen

Taulukko voidaan esitellä monella tapaa ja alaustaa esittelyn yhteydessä.

        Dim A(10) As Integer
        Dim B(10, 12) As Byte
        Dim C() As String     ' koko määritellään myöhemmin
        Dim D(,,,) As Short ' dimensioita neljä, koko myöhemmin
        Dim F() As Long = {1, 2, 3, 4} 'esittely ja alustus yhdessä
        Dim G(,) As Integer = {{1, 2, 3, 4}, {1, 2, 3, 4}} ' kaksi ulottuvuutta

Taulukon koon muuttaminen

Taulukon ulottuvuuksien muuttaminen (ReDim) tyhjää taulukon ellei käytä Preserve sanaa.
ReDim voi muuttaa vain taulukon oikeanpuoleista ulottuvuutta.
      
        ReDim C(8) 'uusi dimensio
        C(1) = "Koe"
        ReDim C(9) 'tyhjäytyy samalla
        C(1) = "Koe"
        ReDim Preserve C(10) ' tieto säilyy
        B(10, 12) = 64
        ReDim Preserve B(10, 13) 'toimii
        'ReDim Preserve B(11, 13) ' tämä väärin, vain oikeanpuoleinen ulottuvuus muutettavissa

Objekti taulukot

Myös olioista eli objekteista voidaan tehdä taulukoita:

        Dim Nappi(2) As Button
        Nappi(0) = New Button
        Nappi(1) = New Button
        Nappi(2) = New Button
        Nappi(1).Text = "Nappi 1"

Taulukon läpikäynti

Taulukon läpikäynti  voidaan tehdä For Each ... Next luupilla tai perinteisellä For ... Next luupilla.

        Dim merkkitaulukko(10) As Char
        Dim merkki As Char : Dim ind As Integer
        'sijoitetaan merkkitaulukkoon kirjain G joka elementtiin
        For Each merkki In merkkitaulukko
            merkki = "G"c
        Next
        ' sama myös perinteisesti
        For i = 0 To 10
            merkkitaulukko(i) = "G"c
        Next

Arvojen sijoitus

Taulukon arvoja ei voi sijoittaa = sijoituksella, koska se vain laittaa kaksi nimeä osoittamaan samaa taulukkoa ja toiseen tehty muutos näkyy myös toisessa. Oikea tapa on käyttää CopyTo menetelmää, se on jopa nopeampi kuin elementti kerrallaan tehty sijoitus.

        Dim Z() As Integer = {1, 2, 3}
        Dim X(2) As Integer
        Dim Y(2) As Integer
        ' väärä tapa sijoittaa arvoja
        X = Z ' X ja Z ovat sama asia
        Z(2) = 6
        Debug.Write(X(2)) '
        ' oikea tapa
        Z.CopyTo(Y, 0)

Lisää Array asiaa Array-luokka sivulla.


Sisältö - Array taulukot - Array luokka