Share via


Arrays in Visual Basic

Arrays sind Gruppen von Werten, die logisch miteinander verknüpft sind, z. B. die Anzahl der Schüler in jeder Jahrgangsstufe einer Grundschule.

Mithilfe eines Arrays können Sie mit demselben Namen auf diese verknüpften Werte verweisen und eine Zahl verwenden, die als Index oder Feldindex bezeichnet wird, um die einzelnen Werte voneinander zu unterscheiden. Die einzelnen Werte werden als Elemente des Arrays bezeichnet. Sie sind fortlaufend von Index 0 (null) bis zum höchsten Indexwert.

Den Gegensatz zu einem Array wird eine Variable mit nur einem Wert Skalar-Variable genannt.

In diesem Thema

  • Arrayelemente in einem einfachen Array

  • Erstellen eines Arrays

  • Deklarieren eines Arrays

  • Speichern von Werten in einem Array

  • Auffüllen eines Arrays mit Anfangswerten

    • Geschachtelte Arrayliterale
  • Durchlaufen eines Arrays

  • Arrays als Rückgabewerte und Parameter

  • Verzweigte Arrays

  • Arrays mit der Länge 0 (null)

  • Arraygröße

  • Arraytypen und andere Typen

  • Auflistungen als Alternative zu Arrays

Arrayelemente in einem einfachen Array

Im folgenden Beispiel wird eine Arrayvariable deklariert, die die Schüler der einzelnen Jahrgangsstufe einer Grundschule enthalten soll.

Dim students(6) As Integer

Das students-Array im vorangehenden Beispiel enthält sieben Elemente. Die Indizes der Elemente reichen von 0 bis 6. Es ist einfacher, dieses Array zu verwenden, als sieben verschiedene Variablen zu deklarieren.

Die folgende Abbildung zeigt das students-Array. Für jedes Element des Arrays gilt:

  • Der Index des Elements steht für die Jahrgangsstufe (Index 0 (null) steht für die erste Jahrgangsstufe).

  • Der im Element enthaltene Wert steht für die Anzahl der Schüler in dieser Jahrgangsstufe.

Elemente des "students"-Arrays

Bild des Arrays mit der Anzahl von Schülern

Das folgende Beispiel zeigt, wie auf das erste, zweite und letzte Element des students-Arrays verwiesen wird.

Dim kindergarten As Integer = students(0)
Dim firstGrade As Integer = students(1)
Dim sixthGrade As Integer = students(6)
MsgBox("Students in kindergarten = " & CStr(kindergarten))
MsgBox("Students in first grade = " & CStr(firstGrade))
MsgBox("Students in sixth grade = " & CStr(sixthGrade))

Sie können auf das Array als Ganzes verweisen, indem Sie nur den Arrayvariablennamen ohne Indizes verwenden.

Das students-Array im vorhergehenden Beispiel verwendet nur einen Index, d. h. es ist eindimensional. Ein Array, das mehr als einen Index oder Feldindex verwendet, wird mehrdimensional genannt. Weitere Informationen finden Sie in den weiteren Informationen dieses Themas und unter Arraydimensionen in Visual Basic.

Erstellen eines Arrays

Es gibt mehrere Möglichkeiten zum Definieren der Größe eines Arrays. Sie können die Größe beim Deklarieren des Arrays angeben, wie im folgenden Beispiel veranschaulicht.

Dim cargoWeights(10) As Double 
Dim atmospherePressures(2, 2, 4, 10) As Short 
Dim inquiriesByYearMonthDay(20)()() As Byte

Sie können die Größe eines Arrays bei seiner Erstellung auch mit einer New-Klausel angeben, wie im folgenden Beispiel veranschaulicht.

cargoWeights = New Double(10) {}
atmospherePressures = New Short(2, 2, 4, 10) {}
inquiriesByYearMonthDay = New Byte(20)()() {}

Die Größe eines vorhandenen Arrays kann mit der Redim-Anweisung neu definiert werden. Sie können angeben, dass von der Redim-Anweisung die derzeit im Array gespeicherten Werte beibehalten werden sollen, oder Sie können angeben, dass ein leeres Array erstellt wird. Im folgenden Beispiel werden andere Möglichkeiten veranschaulicht, um mit der Redim-Anweisung die Größe eines vorhandenen Arrays zu ändern.

' Assign a new array size and retain the current element values. 
ReDim Preserve cargoWeights(20)
' Assign a new array size and retain only the first five element values. 
ReDim Preserve cargoWeights(4)
' Assign a new array size and discard all current element values. 
ReDim cargoWeights(15)

Weitere Informationen finden Sie unter ReDim-Anweisung (Visual Basic).

Deklarieren eines Arrays

Eine Arrayvariable wird wie jede andere Variable mit der Dim-Anweisung deklariert. Dem Typ oder dem Variablennamen folgen ein oder mehrere Klammernpaare, die angeben, dass es sich nicht um einen Skalar (Variable, die nur einen Wert enthält), sondern um ein Array handelt.

Wenn Sie das Array deklariert haben, können Sie mit ReDim-Anweisung (Visual Basic) dessen Größe definieren.

Im folgenden Beispiel wird eine eindimensionale Arrayvariable deklariert, indem ein Klammernpaar nach dem Typ hinzugefügt wird. Im Beispiel werden außerdem mithilfe von ReDim-Anweisung (Visual Basic) die Dimensionen des Arrays angegeben.

' Declare a one-dimensional array. 
Dim cargoWeights As Double()

' Dimension the array. 
ReDim cargoWeights(15)

Im folgenden Beispiel wird eine mehrdimensionale Arrayvariable deklariert, indem ein Klammernpaar nach dem Typ hinzugefügt und Kommas innerhalb der Klammer eingefügt werden, mit denen die Dimensionen voneinander getrennt werden: Im Beispiel werden außerdem mithilfe von ReDim-Anweisung (Visual Basic) die Dimensionen des Arrays angegeben.

' Declare a multidimensional array. 
Dim atmospherePressures As Short(,,,)

' Dimension the array. 
ReDim atmospherePressures(1, 2, 3, 4)

Fügen Sie zum Deklarieren einer verzweigten Arrayvariablen für jede Ebene des geschachtelten Arrays ein Klammernpaar nach dem Variablennamen ein.

Dim inquiriesByYearMonthDay()()() As Byte

In den vorhergehenden Beispielen werden Arrayvariablen deklariert, denen jedoch kein Array zugewiesen wird. Sie müssen immer noch ein Array erstellen, dieses initialisieren und der Variablen zuweisen.

Speichern von Werten in einem Array

Sie können mit einem Index vom Typ Integer auf die einzelnen Positionen in einem Array zugreifen. Die Werte in einem Array können gespeichert und abgerufen werden, indem mit dem entsprechenden in Klammern eingeschlossenen Index auf die einzelnen Arraypositionen verwiesen wird. Indizes für mehrdimensionale Arrays sind durch Kommas (,) getrennt. Sie benötigen einen Index für jede Arraydimension. Im folgenden Beispiel werden einige Anweisungen gezeigt, die Werte in Arrays speichern.

Dim i = 4
Dim j = 2

Dim numbers(10) As Integer 
Dim matrix(5, 5) As Double

numbers(i + 1) = 0
matrix(3, j * 2) = j

Das folgende Beispiel enthält einige Anweisungen, die Werte aus Arrays abrufen.

Dim v = 2
Dim i = 1
Dim j = 1
Dim k = 1
Dim wTotal As Double = 0.0
Dim sortedValues(5), rawValues(5), estimates(2, 2, 2) As Double 
Dim lowestValue = sortedValues(0)
wTotal += (rawValues(v) ^ 2)
Dim firstGuess = estimates(i, j, k)

Auffüllen eines Arrays mit Anfangswerten

Mit einem Arrayliteral können Sie ein Array erstellen, das einen Anfangssatz von Werten enthält. Ein Arrayliteral besteht aus einer Liste von durch Trennzeichen getrennten Werten, die in geschweifte Klammern ({}) eingeschlossen sind.

Beim Erstellen eines Arrays mit einem Arrayliteral können Sie den Arraytyp entweder angeben oder mittels Typrückschluss bestimmen. Im folgenden Code werden beide Optionen veranschaulicht.

Dim numbers = New Integer() {1, 2, 4, 8}
Dim doubles = {1.5, 2, 9.9, 18}

Beim Typrückschluss wird der Typ des Arrays anhand des bestimmenden Typs in der Liste der Werte bestimmt, die für das Arrayliteral angegeben wurden. Der bestimmende Typ ist ein eindeutiger Typ, auf den alle anderen Typen im Arrayliteral erweitert werden können. Wenn dieser eindeutige Typ nicht bestimmt werden kann, ist der bestimmende Typ der eindeutige Typ, auf den alle anderen Typen im Array eingegrenzt werden können. Wenn keiner dieser eindeutigen Typen bestimmt werden kann, ist der bestimmende Typ Object. Wenn die für das Arrayliteral angegebene Liste der Werte z. B. Werte vom Typ Integer, Long und Double enthält, weist das erhaltene Array den Typ Double auf. Sowohl Integer als auch Long können nur auf Double erweitert werden. Daher ist Double der bestimmende Typ. Weitere Informationen finden Sie unter Erweiternde und eingrenzende Konvertierungen (Visual Basic). Diese Rückschlussregeln gelten für Typen, die für Arrays abgeleitet werden, die lokale, in einem Klassenmember definierte Variablen darstellen. Sie können zwar Arrayliterale beim Erstellen von Variablen auf Klassenebene verwenden, ein Typrückschluss auf Klassenebene ist jedoch nicht möglich. Daher leiten auf Klassenebene angegebene Arrayliterale die für das Arrayliteral bereitgestellten Werte als Object-Typ ab.

In einem mit einem Arrayliteral erstellten Array kann der Typ der Elemente explizit angegeben werden. In diesem Fall müssen die Werte im Arrayliteral auf den Typ der Elemente des Arrays erweitert werden. Im folgenden Codebeispiel wird ein Array vom Typ Double aus einer Liste von ganzen Zahlen erstellt.

Dim values As Double() = {1, 2, 3, 4, 5, 6}

Geschachtelte Arrayliterale

Sie können ein mehrdimensionales Array mithilfe von geschachtelten Arrayliteralen erstellen. Geschachtelte Arrayliterale müssen über eine Dimension sowie eine Anzahl von Dimensionen (bzw. einen Rang) verfügen, der mit dem erhaltenen Array konsistent ist. Im folgenden Codebeispiel wird mit einem Arrayliteral ein zweidimensionales Array von ganzen Zahlen erstellt.

Dim grid = {{1, 2}, {3, 4}}

Im vorherigen Beispiel würde ein Fehler auftreten, wenn die Anzahl der Elemente in den geschachtelten Arrayliteralen nicht übereinstimmt. Ein Fehler würde auch auftreten, wenn die Arrayvariable explizit als nicht zweidimensional deklariert ist.

Hinweis

Sie können Fehler vermeiden, wenn Sie geschachtelte Arrayliterale anderer Dimensionen angeben, indem Sie die inneren Arrayliterale in Klammern einschließen.Die Klammern erzwingen die Auswertung des Literalausdrucks des Arrays, und die erhaltenen Werte werden mit dem äußeren Arrayliteral verwendet. Dies ist im folgenden Code veranschaulicht.

Dim values = {({1, 2}), ({3, 4, 5})}

Mehrdimensionale Arrays können mit geschachtelten Arrayliteralen mithilfe des Typrückschlusses erstellt werden. Wenn Sie den Typrückschluss verwenden, ist der abgeleitete Typ der bestimmende Typ für sämtliche Werte in allen Arrayliteralen für eine Schachtelungsebene. Im folgenden Codebeispiel wird ein zweidimensionales Array vom Typ Double aus Werten erstellt, die vom Typ Integer und Double sind.

Dim a = {{1, 2.0}, {3, 4}, {5, 6}, {7, 8}}

Weitere Beispiele finden Sie unter Gewusst wie: Initialisieren einer Arrayvariablen in Visual Basic.

Durchlaufen eines Arrays

Wenn Sie ein Array durchlaufen, greifen Sie vom niedrigsten Index bis zum höchsten Index auf jedes Element im Array zu.

Im folgenden Beispiel wird ein eindimensionales Array mit dem For...Next-Anweisung (Visual Basic) durchlaufen. Die GetUpperBound-Methode gibt den höchsten Wert zurück, den der Index annehmen kann. Der niedrigste Indexwert ist immer 0.

Dim numbers = {10, 20, 30}

For index = 0 To numbers.GetUpperBound(0)
    Debug.WriteLine(numbers(index))
Next 
' Output: 
'  10 
'  20 
'  30

Im folgenden Beispiel wird ein mehrdimensionales Array mit einer For...Next-Anweisung durchlaufen. Die GetUpperBound-Methode enthält einen Parameter, der die Dimension angibt. GetUpperBound(0) gibt den hohen Indexwert für die erste Dimension und GetUpperBound(1) gibt den hohen Indexwert für die zweite Dimension zurück.

Dim numbers = {{1, 2}, {3, 4}, {5, 6}}

For index0 = 0 To numbers.GetUpperBound(0)
    For index1 = 0 To numbers.GetUpperBound(1)
        Debug.Write(numbers(index0, index1).ToString & " ")
    Next
    Debug.WriteLine("")
Next 
' Output  
'  1 2  
'  3 4  
'  5 6

Im folgenden Beispiel wird ein eindimensionales Array mit einem For Each...Next-Anweisung (Visual Basic) durchlaufen.

Dim numbers = {10, 20, 30}

For Each number In numbers
    Debug.WriteLine(number)
Next 
' Output: 
'  10 
'  20 
'  30

Im folgenden Beispiel wird ein mehrdimensionales Array mit einer For Each...Next-Anweisung durchlaufen. Sie haben jedoch mehr Kontrolle über die Elemente eines mehrdimensionalen Arrays, wenn Sie, wie im vorherigen Beispiel, eine geschachtelte For…Next-Anweisung anstelle einer For Each…Next-Anweisung verwenden.

Dim numbers = {{1, 2}, {3, 4}, {5, 6}}

For Each number In numbers
    Debug.WriteLine(number)
Next 
' Output: 
'  1 
'  2 
'  3 
'  4 
'  5 
'  6

Arrays als Parameter und Rückgabewerte

Damit eine Function-Prozedur ein Array zurückgibt, geben Sie den Arraydatentyp und die Anzahl der Dimensionen als Rückgabetyp für die Function-Anweisung (Visual Basic) an. Deklarieren Sie in der Funktion eine lokale Arrayvariable mit dem gleichen Datentyp und der gleichen Anzahl an Dimensionen. Schließen Sie die lokale Arrayvariable ohne Klammern in die Return-Anweisung (Visual Basic) ein.

Um ein Array als Parameter für eine Sub- oder Function-Prozedur anzugeben, definieren Sie den Parameter als Array mit einem bestimmten Datentyp und einer bestimmten Anzahl von Dimensionen. Senden Sie im Aufruf zur Prozedur eine Arrayvariable mit dem gleichen Datentyp und der gleichen Anzahl von Dimensionen.

Im folgenden Beispiel gibt die Funktion GetNumbers einen Integer() zurück. Dieser Arraytyp ist ein eindimensionales Array vom Typ Integer. Die Prozedur ShowNumbers akzeptiert ein Argument Integer().

Public Sub Process()
    Dim numbers As Integer() = GetNumbers()
    ShowNumbers(numbers)
End Sub 

Private Function GetNumbers() As Integer()
    Dim numbers As Integer() = {10, 20, 30}
    Return numbers
End Function 

Private Sub ShowNumbers(numbers As Integer())
    For index = 0 To numbers.GetUpperBound(0)
        Debug.WriteLine(numbers(index) & " ")
    Next 
End Sub 

' Output: 
'   10 
'   20 
'   30

Im folgenden Beispiel gibt die Funktion GetNumbersMultiDim einen Integer(,) zurück. Dieser Arraytyp ist ein zweidimensionales Array vom Typ Integer. Die Prozedur ShowNumbersMultiDim akzeptiert ein Argument Integer(,).

Public Sub ProcessMultidim()
    Dim numbers As Integer(,) = GetNumbersMultidim()
    ShowNumbersMultidim(numbers)
End Sub 

Private Function GetNumbersMultidim() As Integer(,)
    Dim numbers As Integer(,) = {{1, 2}, {3, 4}, {5, 6}}
    Return numbers
End Function 

Private Sub ShowNumbersMultidim(numbers As Integer(,))
    For index0 = 0 To numbers.GetUpperBound(0)
        For index1 = 0 To numbers.GetUpperBound(1)
            Debug.Write(numbers(index0, index1).ToString & " ")
        Next
        Debug.WriteLine("")
    Next 
End Sub 

' Output   
'  1 2   
'  3 4   
'  5 6

Verzweigte Arrays

Ein Array, das andere Arrays als Elemente enthält, wird als Array von Arrays oder verzweigtes Array bezeichnet. Ein verzweigtes Array und jedes Element in einem verzweigten Array können über eine oder mehrere Dimensionen verfügen. In einigen Fällen ist die Datenstruktur in einer Anwendung zweidimensional, jedoch nicht rechteckig.

Im folgenden Beispiel wird ein Array von Monaten dargestellt, bei dem jedes Element ein Array von Tagen ist. Da die einzelnen Monate eine unterschiedliche Anzahl von Tagen haben, bilden die Elemente kein rechteckiges zweidimensionales Array. Deshalb wird ein verzweigtes Array anstelle eines mehrdimensionalen Arrays verwendet.

' Declare the jagged array. 
' The New clause sets the array variable to a 12-element 
' array. Each element is an array of Double elements. 
Dim sales()() As Double = New Double(11)() {}

' Set each element of the sales array to a Double 
' array of the appropriate size. 
For month As Integer = 0 To 11
    Dim days As Integer =
        DateTime.DaysInMonth(Year(Now), month + 1)
    sales(month) = New Double(days - 1) {}
Next month

' Store values in each element. 
For month As Integer = 0 To 11
    Dim upper = sales(month).GetUpperBound(0)
    For day = 0 To upper
        sales(month)(day) = (month * 100) + day
    Next 
Next

Arrays mit der Länge 0 (null)

Ein Array ohne Elemente wird auch als Array der Länge Null bezeichnet. In einer Variablen mit einem Array der Länge Null kommt auch der Wert Nothing nicht vor. Wenn Sie ein Array ohne Elemente erstellen möchten, deklarieren Sie eine der Dimensionen des Arrays als -1, wie im folgenden Beispiel veranschaulicht.

Dim twoDimensionalStrings(-1, 3) As String

Unter den folgenden Bedingungen müssen Sie eventuell ein Array der Länge 0 (null) erstellen:

  • Der Code muss, ohne eine NullReferenceException-Ausnahme auszulösen, auf Member der Array-Klasse zugreifen, beispielsweise auf Length oder Rank, oder eine Visual Basic-Funktion wie UBound aufrufen.

  • Sie möchten den verwendeten Code dadurch vereinfachen, dass eine Überprüfung auf das Vorhandensein von Nothing als Sonderfall entfällt.

  • Der Code interagiert mit einer API (Application Programming Interface), die entweder verlangt, dass mindestens einer Prozedur ein Array der Länge Null übergeben wird. Oder er interagiert mit einer API, die ein solches Array von mindestens einer Prozedur zurückgibt.

Arraygröße

Die Größe eines Arrays ist das Produkt der Längen aller seiner Dimensionen. Sie stellt die Gesamtzahl der Elemente dar, die derzeit im Array enthalten sind.

Im folgenden Beispiel wird ein dreidimensionales Array deklariert.

Dim prices(3, 4, 5) As Long

Die Gesamtgröße des Arrays in der prices-Variable ist (3 + 1) x (4 + 1) x (5 + 1) = 120.

Sie können die Größe eines Arrays mithilfe der Length-Eigenschaft bestimmen. Sie können die Länge der einzelnen Dimensionen eines mehrdimensionalen Arrays mithilfe der GetLength-Methode bestimmen.

Sie können die Größe einer Arrayvariablen ändern, indem Sie ihr ein neues Arrayobjekt zuweisen oder indem Sie die ReDim-Anweisung verwenden.

Mehrere Faktoren wirken sich auf die Arraygröße aus.

Dimensionslänge

Der Index jeder Dimension ist nullbasiert, d. h. er reicht von 0 bis zur Obergrenze. Die Länge einer bestimmten Dimension ist deshalb um 1 größer als die deklarierte Obergrenze dieser Dimension.

Längenbeschränkungen

Die Länge jeder Dimension eines Arrays ist auf den maximalen Wert des Integer-Datentyps ((2 ^ 31) - 1) beschränkt. Die Gesamtgröße eines Arrays richtet sich nach dem verfügbaren Arbeitsspeicher des Systems und ist damit ebenfalls beschränkt. Wenn Sie versuchen, ein Array zu initialisieren, das die Kapazität des verfügbaren RAM-Arbeitsspeichers übersteigt, löst die Common Language Runtime eine OutOfMemoryException-Ausnahme aus.

Größe und Elementgröße

Die Größe eines Arrays ist vom Datentyp seiner Elemente unabhängig. Die Größe stellt immer die Gesamtzahl der Elemente dar, nicht die Anzahl an Bytes, die die Elemente im Speicher belegen.

Speicherverbrauch

Es gibt keine verbindlichen Angaben darüber, wie ein Array gespeichert wird. Der Speicherverbrauch variiert auf Plattformen mit unterschiedlichen Datenbreiten, d. h. ein und dasselbe Array kann auf einem 64-Bit-System mehr Speicherplatz benötigen als auf einem 32-Bit-System. Abhängig von der Systemkonfiguration beim Initialisieren eines Arrays kann die Common Language Runtime (CLR) Speicher so zuweisen, dass die Elemente auf sehr engem Raum gespeichert werden oder nur die natürlichen Hardwarebeschränkungen gelten. Ein Array benötigt außerdem zusätzlichen Speicher für seine Steuerungsinformationen. Der Bedarf an zusätzlichem Speicher nimmt mit jeder hinzugefügten Dimension zu.

Arraytypen und andere Typen

Jedes Array besitzt einen Datentyp, der jedoch nicht mit dem Datentyp seiner Elemente identisch ist. Es gibt keinen universellen Datentyp, der sich für alle Arrays eignet. Stattdessen wird der Datentyp eines Arrays durch die Anzahl der Dimensionen (den Rang) des Arrays bestimmt, sowie durch den Datentyp der Elemente im Array. Die Datentypen zweier Arrayvariablen werden nur dann als gleich betrachtet, wenn die Arrayvariablen den gleichen Rang aufweisen und ihre Elemente den gleichen Datentyp aufweisen. Die Länge der Dimensionen in einem Array haben keinerlei Auswirkungen auf den Arraydatentyp.

Jedes Array erbt aus der Array-Klasse. Sie können eine Variable des Typs Array deklarieren, ein Array des Typs Array können Sie jedoch nicht erstellen. Die ReDim-Anweisung (Visual Basic) kann nicht für eine Variable verwendet werden, die mit dem Typ Array deklariert ist. Aus diesen Gründen und zur Gewährleistung der Typsicherheit empfiehlt es sich, jedes Array als bestimmten Typ zu deklarieren (Integer im vorhergehenden Beispiel).

Sie können den Datentyp eines Arrays oder seiner Elemente auf verschiedene Arten ermitteln.

  • Sie können die Object.GetType-Methode für die Variable aufrufen, um ein Type-Objekt für den Laufzeittyp der Variable zu erhalten. Das Type-Objekt stellt in seinen Eigenschaften und Methoden umfassende Informationen bereit.

  • Sie können die Variable an die TypeName-Funktion übergeben, um den Namen des Laufzeittyps als String zu erhalten.

  • Sie können die Variable an die VarType-Funktion übergeben, um einen VariantType-Wert zu erhalten, der die Typklassifikation der Variablen darstellt.

Im folgenden Beispiel wird die TypeName-Funktion aufgerufen, um den Typ des Arrays und den Typ der Elemente im Array zu bestimmen. Der Arraytyp ist Integer(,), und die Elemente im Array sind vom Typ Integer.

Dim thisTwoDimArray(,) As Integer = New Integer(9, 9) {}
MsgBox("Type of thisTwoDimArray is " & TypeName(thisTwoDimArray))
MsgBox("Type of thisTwoDimArray(0, 0) is " & TypeName(thisTwoDimArray(0, 0)))

Auflistungen als Alternative zu Arrays

Arrays eignen sich bestens zum Erstellen und Arbeiten mit einer festen Anzahl von Objekten mit starkem Typ. Auflistungen ermöglichen ein flexibleres Arbeiten mit Objektgruppen. Im Gegensatz zu Arrays kann sich die Gruppe von Objekten, mit denen Sie arbeiten, in Abhängigkeit von den sich ändernden Anforderungen der Anwendung dynamisch vergrößern bzw. verkleinern.

Wenn Sie die Größe eines Arrays ändern müssen, müssen Sie die ReDim-Anweisung (Visual Basic) verwenden. Dabei erstellt Visual Basic ein neues Array und gibt das vorherige Array zum Löschen frei. Dies nimmt Ausführungszeit in Anspruch. Wenn sich die Anzahl der verwendeten Elemente häufig ändert oder Sie die maximale Anzahl der benötigten Elemente nicht vorhersehen können, erzielen Sie mit einer Auflistung möglicherweise eine höhere Leistung.

Bei einigen Auflistungen können Sie jedem Objekt, das Sie in die Auflistung einfügen, einen Schlüssel zuweisen, sodass das Objekt anhand des Schlüssels schnell abgerufen werden kann.

Wenn die Auflistung Elemente eines Datentyps enthält, können Sie eine der Klassen im System.Collections.Generic-Namespace verwenden. Eine generische Auflistung erzwingt Typsicherheit, sodass der Auflistung kein anderer Datentyp hinzugefügt werden kann. Wenn Sie ein Element aus einer generischen Auflistung abrufen, brauchen Sie dessen Datentyp nicht zu bestimmen oder zu konvertieren.

Weitere Informationen über Auflistungen finden Sie unter Auflistungen (C# und Visual Basic).

Beispiel

Im folgenden Beispiel wird mit der generischen .NET Framework-Klasse List eine Listenauflistung mit Customer-Objekten erstellt.

' Define the class for a customer. 
Public Class Customer
    Public Property Name As String 
    ' Insert code for other members of customer structure. 
End Class 

' Create a module-level collection that can hold 200 elements. 
Public CustomerList As New List(Of Customer)(200)

' Add a specified customer to the collection. 
Private Sub AddNewCustomer(ByVal newCust As Customer)
    ' Insert code to perform validity check on newCust.
    CustomerList.Add(newCust)
End Sub 

' Display the list of customers in the Debug window. 
Private Sub PrintCustomers()
    For Each cust As Customer In CustomerList
        Debug.WriteLine(cust)
    Next cust
End Sub

Die Deklaration der CustomerFile-Auflistung gibt an, dass sie nur Elemente vom Typ Customer enthalten kann. Sie bietet außerdem eine Anfangskapazität von 200 Elementen. Die Prozedur AddNewCustomer überprüft das neue Element auf seine Gültigkeit und fügt es dann der Auflistung hinzu. Die Prozedur PrintCustomers verwendet zum Traversieren der Auflistung und zum Anzeigen ihrer Elemente eine For Each-Schleife.

Verwandte Themen

Begriff

Definition

Arraydimensionen in Visual Basic

Erläutert Rang und Dimensionen in Arrays.

Gewusst wie: Initialisieren einer Arrayvariablen in Visual Basic

Beschreibt das Auffüllen von Arrays mit Anfangswerten.

Gewusst wie: Sortieren eines Arrays in Visual Basic

Erläutert, wie die Elemente eines Arrays alphabetisch sortiert werden.

Gewusst wie: Zuweisen eines Arrays zu einem anderen Array (Visual Basic)

Beschreibt die Regeln und Schritte zum Zuweisen eines Arrays an eine andere Arrayvariable.

Problembehandlung bei Arrays (Visual Basic)

Erörtert einige allgemeine Probleme, die beim Arbeiten mit Arrays auftreten.

Siehe auch

Referenz

Dim-Anweisung (Visual Basic)

ReDim-Anweisung (Visual Basic)

Array