homeboekenlinksledenabonneer je :Blijf op de hoogte door je te abonneren op de vbvoorbeelden RSS Niews Feed!Blijf op de hoogte door vbvoorbeelden te volgen op Twitter!Blijf op de hoogte door fan te worden van vbvoorbeelden op Facebook!
Visual Basic 2008 en 2010 Voorbeelden en Boeken Microsoft Visual Studio 2010Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

visual basic 2008 voorbeelden en boeken / visual basic 2010 voorbeelden en boeken

7.13. System.Array Collecties

Print Email Deel op FacebookDeel op TwitterDeel op DiggBookmark op Google BookmarksDeel op del.icio.usOverige Sociale Netwerksites...

Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Een array is een verzameling van elementen van hetzelfde datatype.
Visual Basic Broncode
Option Strict On
Option Explicit On

Class Example1
    Public Shared Sub Main()
        Dim array1 As Integer()
        '
        array1 = New Integer() {1, 2, 3}                                   ' (1)
        Dim array2 As Integer() = New Integer() {4, 5, 6}
        Dim array3 As Integer() = {4, 5, 6}                                ' (2)
        '
        Dim array4 As Integer() = array1                                   ' (3)
        '
        Dim array5 As System.Array
        array5 = array3                                                    ' (4)
        array5 = New String() {"abc", "def"}                               ' (4)
    End Sub
End Class
Op regel (1) zie je dat in de expressie die de toekenningswaarde vormt, een "object initializer" wordt gebruikt met "array initializer". Deze expressie zal de array instantiëren en de referentie van de instantie opleveren. Deze referentie wordt hier dus aan de variabele array1 toegekend.

Een verkorte notatie - om hetzelfde resultaat te bekomen - zie je in regel (2) waar enkel de array initializer wordt gebruikt.

Regel (3) maakt duidelijk dat arraytypes ook referencetypes zijn, waarbij de variabelen slechts de referentie/verwijzing naar de arrayinstantie bevatten. Een belangrijk gekend gevolg is dat meerdere variabelen kunnen wijzen naar een zelfde instantie. Na de uitvoer van regel (3) zullen beide variabelen array1 en array4 naar dezelfde array instantie wijzen.

Elk arraytype, of het nu bijvoorbeeld een ééndimensionale Integer array is ( Integer() ) of een driedimensionale Person array ( Person(,,) ) is een specialisatietype van het System.Array type.
Wat als gevolg heeft dat een variabele van het type System.Array kan wijzen naar eender welk soort array instantie, zoals gedemonstreerd op regel (4).

In onderstaand voorbeeld worden enkele members uit het type System.Array gedemonstreerd.
Visual Basic Broncode
Class Example2
    Public Shared Sub Main()
        ' information retrieval :
        Dim array1 As Byte(,) = New Byte(,) {{1, 2, 3}, {4, 5, 6}}
        ' elements-count :
        Console.WriteLine(array1.Length)           ' 6
        ' dimensions-count :
        Console.WriteLine(array1.Rank)             ' 2
        ' length second dimension :
        Console.WriteLine(array1.GetLength(1))     ' 3
        ' lowerbound first dimension :
        Console.WriteLine(array1.GetLowerBound(0)) ' 0
        ' upperbound second dimension :
        Console.WriteLine(array1.GetUpperBound(1)) ' 2
        '
        ' searching in a 1-dimensional array :
        Dim array2 As Integer() = New Integer() {1, 2, 3, 2, 5}
        Dim searchValue As Integer = 2
        ' first index of element with value 2 in 'array2' :
        Console.WriteLine(Array.IndexOf(array2, searchValue))        ' 1
        ' last index starting at index 3 of element with value 2 in 'array2' :
        Console.WriteLine(Array.LastIndexOf(array2, searchValue, 3)) ' 3
        ' first index starting at index 2 of element with value 2 in 'array2',
        ' searching over a length of 1 element :
        Console.WriteLine(Array.IndexOf(array2, searchValue, 2, 1))  ' -1
        array2(3) = 4                                                     ' (1)
        ' binary search of element with value 2 in 'array2' :
        Console.WriteLine(Array.BinarySearch(array2, searchValue))   ' 1
        '
        ' reversing an array :
        PrintArray(array2)   ' "1 - 2 - 3 - 4 - 5 - "
        Array.Reverse(array2)
        PrintArray(array2)   ' "5 - 4 - 3 - 2 - 1 - "
        ' reversing 3 elements in 'array2' starting at index 1 :
        Array.Reverse(array2, 1, 3)
        PrintArray(array2)   ' "5 - 2 - 3 - 4 - 1 - "
        '
        ' sorting an array :                                                (2)
        Dim array3 As String() = New String() {"Paul", "John", "Jane"}
        PrintArray(array3)   ' "Paul - John - Jane - "
        Array.Sort(array3)
        PrintArray(array3)   ' "Jane - John - Paul - "
        Array.Reverse(array3)
        PrintArray(array3)   ' "Paul - John - Jane - "
        Array.Sort(array3, 1, 2)
        PrintArray(array3)   ' "Paul - Jane - John - "
        '
        ' clearing an array :
        ' clearing 2 elements of 'array3' starting at index 0 :
        Array.Clear(array3, 0, 2)
        PrintArray(array3)   ' " -   - John - "
        '
        ' copying elements of an array :
        Dim array4 As Byte() = New Byte() {1, 2, 3, 4, 5, 6, 7, 8, 9}
        Dim array5(5) As Byte                                             ' (3)
        Array.Copy(array4, array5, 6)
        PrintArray(array5)   ' "1 - 2 - 3 - 4 - 5 - 6 - "
        Array.Copy(array4, 2, array5, 1, 3)
        PrintArray(array5)   ' "1 - 3 - 4 - 5 - 5 - 6 - "
        '
        Console.ReadLine()
    End Sub
    Public Shared Sub PrintArray(ByVal array As Array)
        For Each element As Object In array                               ' (4)
            If element IsNot Nothing Then                                 ' (5)
                Console.Write(element.ToString() & " - ")
            End If
        Next
        Console.WriteLine()
    End Sub
End Class
Visual Basic Output
6
2
3
0
2
1
3
-1
1
1 - 2 - 3 - 4 - 5 -
5 - 4 - 3 - 2 - 1 -
5 - 2 - 3 - 4 - 1 -
Paul - John - Jane -
Jane - John - Paul -
Paul - John - Jane -
Paul - Jane - John -
John -
1 - 2 - 3 - 4 - 5 - 6 -
1 - 3 - 4 - 5 - 5 - 6 -
(1) : De Array.BinarySearch() method verwacht een gesorteerde ééndimensionale array.

(2) : Bij het gebruik van de Array.Sort() method worden de elementen volgens een "quicksort" algoritme gesorteerd. Op basis van wat de elementen gesorteerd worden, wordt verderop behandeld.

(3) : Bij gebruik van de Array.Copy() method moet de "destination array" voldoende groot zijn, zoniet treedt er een exception op.

(4) : De elementen van een array kunnen overlopen worden met een For Each iteratie.

(5) : Een Boolean expressie Not x Is Nothing kan ook geformuleerd worden door te stellen x IsNot Nothing.

Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Visual Basic 2008 & 2010 Boeken

Het Groene Visual Basic 2008 & 2010 Voorbeelden Boek Het Blauwe Visual Basic 2008 & 2010 Voorbeelden Boek Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek

Bevalt een artikel je, dan kan je de inhoud van vbvoorbeelden ook reclamevrij in boekvorm verkrijgen.

De inhoud is verdeeld over 3 boeken, Het Groene, Het Blauwe en Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek.

Klik hier voor meer informatie.

Berichten

Fast UML Sequence Diagram Editor