DevTrain

Autor: Andreas Rauch

Neuerungen bei den Arrays

Bei VB.NET gibt es bei den Arrays einige Neuerungen. So ist die untere Feldgrenze z. B. immer 0, den Option Base-Befehl sowie das Schlüsselwort To gibt es nicht mehr. Der folgende Befehl definiert also einen Array mit 10 Elementen, da das unterste Element den Index 0 besitzt:

Dim aZahlen(9) As Integer

Man kann die Größe und eventuelle Startwerte gleich mitdeklarieren:

Dim aZahlen() As Integer = {11,22,33,44}

Die Initialisierungswerte werden dabei in geschweifte Klammern geschrieben. Es ist auch möglich, Klassen oder Strukturen mit New zu initialisieren.

In VB 6.0 konnte man einen Array mit einer festen Größe nicht mehr ändern. Dies geht jetzt durch den ReDim-Befehl.

Dim aZahlen(9) As Integer
ReDim aZahlen(11)

Aber Achtung! Dabei werden die vorherigen Werte gelöscht, fügt man nicht das Schlüsselwort Preserve hinzu.

Dim aZahlen(9) As Integer
ReDim Preserve aZahlen(11)


Für die Deklaration multi-dimensionaler Arrays gilt:
ReDim kann zwar die Anzahl der Elemente der einzelnen Dimensionen ändern, aber nicht die Anzahl der Dimensionen selbst. Außerdem kann ReDim Preserve nur die letzte Dimension ändern.

Die wichtigste Neuerung ist aber: Arrays basieren auf der Array-Klasse und besitzen dadurch einige interessante Zusatzfunktionen, wie z.B. die Sort-Methode.

Dazu ein Beispiel: Aus vier Teams in einem Array werden Begegnungen in einem Array namens aSpiele abgelegt und je nach Wunsch sortiert oder unsortiert ausgegeben.

Imports System.Console
Public Class Array
   Private Shared aTeams() As String = {"Brasilien", "Deutschland", _
  
"Italien", "Irland"}
   Private Shared aSpiele() As String
   Shared Sub main()
      Dim i, j, sSpielNr As Short
      Write("Sortierte Ausgabe (J/N)?")
      Dim stEingabe As String = ReadLine()
      Dim SortModus As Boolean
      SortModus = stEingabe.Length = 1 AndAlso stEingabe.ToUpper = "J"
      For i = 0 To aTeams.GetLength(0) - 1
         For j = i + 1 To aTeams.GetLength(0) - 1
            ReDim Preserve aSpiele(sSpielNr)
            aSpiele(sSpielNr) = aTeams(i) & ":" & aTeams(j)
            sSpielNr += 1
         Next j
      Next i
      If SortModus = True Then System.Array.Sort(aSpiele)
      For i = 0 To sSpielNr - 1
      WriteLine("Begegnung Nr. {0}: {1}", i + 1, aSpiele(i))
      Next
   End Sub
End Class

 

 


Erfasst am: 16.04.2003 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=848
© Copyright 2003 ppedv AG - http://www.ppedv.de