|
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}
Dim array2 As Integer() = New Integer() {4, 5, 6}
Dim array3 As Integer() = {4, 5, 6}
Dim array4 As Integer() = array1
Dim array5 As System.Array
array5 = array3
array5 = New String() {"abc", "def"}
End Sub
End ClassDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
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()
Dim array1 As Byte(,) = New Byte(,) {{1, 2, 3}, {4, 5, 6}}
Console.WriteLine(array1.Length)
Console.WriteLine(array1.Rank)
Console.WriteLine(array1.GetLength(1))
Console.WriteLine(array1.GetLowerBound(0))
Console.WriteLine(array1.GetUpperBound(1))
Dim array2 As Integer() = New Integer() {1, 2, 3, 2, 5}
Dim searchValue As Integer = 2
Console.WriteLine(Array.IndexOf(array2, searchValue))
Console.WriteLine(Array.LastIndexOf(array2, searchValue, 3))
Console.WriteLine(Array.IndexOf(array2, searchValue, 2, 1))
array2(3) = 4
Console.WriteLine(Array.BinarySearch(array2, searchValue))
PrintArray(array2)
Array.Reverse(array2)
PrintArray(array2)
Array.Reverse(array2, 1, 3)
PrintArray(array2)
Dim array3 As String() = New String() {"Paul", "John", "Jane"}
PrintArray(array3)
Array.Sort(array3)
PrintArray(array3)
Array.Reverse(array3)
PrintArray(array3)
Array.Sort(array3, 1, 2)
PrintArray(array3)
Array.Clear(array3, 0, 2)
PrintArray(array3)
Dim array4 As Byte() = New Byte() {1, 2, 3, 4, 5, 6, 7, 8, 9}
Dim array5(5) As Byte
Array.Copy(array4, array5, 6)
PrintArray(array5)
Array.Copy(array4, 2, array5, 1, 3)
PrintArray(array5)
Console.ReadLine()
End Sub
Public Shared Sub PrintArray(ByVal array As Array)
For Each element As Object In array
If element IsNot Nothing Then
Console.Write(element.ToString() & " - ")
End If
Next
Console.WriteLine()
End Sub
End ClassDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
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
Berichten
|