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.

Indem Sie ein Array verwenden, können Sie diese verknüpften Werte mit demselben Namen verweisen und verwenden eine Zahl, die einen einzelnen mitzuteilen Index aufgerufen oder ein Index, ihnen.Die einzelnen Werte werden als Elemente des Arrays bezeichnet.Sie sind von Index 0 bis zum höchsten Indexwert.

Im Gegensatz zu einem Array wird eine Variable, das enthält, ein einzelner Wert eine skalare-Variable aufgerufen.

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 von einem Array

  • Arrays als Parameter und Rückgabewerte

  • 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 Array students im vorangehenden Beispiel enthält sieben Elemente.Die Indizes der Elemente reichen von 0 bis 6.Dieses Array zu verwenden ist einfacher, als sieben 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 Wert, der im - Element enthalten ist, stellt 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 Array students im vorhergehenden Beispiel verwendet ein Index und soll eindimensional.Ein Array, das mehr als einen Index oder Feldindex verwendet, wird mehrdimensional genannt.Weitere Informationen finden Sie im weiteren Verlauf dieses Themas und Arraydimensionen in Visual Basic.

Erstellen eines Arrays

Sie können die Größe eines Arrays definieren mehrere Methoden.Sie können die Größe, wenn das Array deklariert wird, wie im folgenden Beispiel gezeigt angeben.

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

Sie können eine New-Klausel auch verwenden, um die Größe eines Arrays, wenn sie erstellt hat, wie im folgenden Beispiel gezeigt an.

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 die Redim-Anweisung die Werte beibehalten soll, die im Array sind, oder Sie können angeben, dass ein leeres Array erstellt.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 hierzu finden Sie unter ReDim-Anweisung (Visual Basic).

Deklarieren eines Arrays

Eine Arrayvariable wird wie jede andere Variable mit der Dim-Anweisung deklariert.Sie folgen dem Typ oder dem Variablennamen ein oder mehrere Klammernpaare, um anzugeben, dass er ein Array nicht um einen Skalar enthält, das eine Variable ist, die einen einzelnen Wert enthält.

Nachdem Sie das Array deklarieren, können Sie dessen Größe definieren, indem Sie ReDim-Anweisung (Visual Basic) verwenden.

Das folgende Beispiel deklariert eine eindimensionalen Arrayvariablen, indem ein Klammernpaar nach dem Typ hinzugefügt wird.Im Beispiel wird auch die Dimensionen des Arrays an, indem ReDim-Anweisung (Visual Basic) verwendet.

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

' Dimension the array.
ReDim cargoWeights(15)

Im folgenden Beispiel wird eine Variable deklariert mehrdimensionaler Arrays, indem ein Klammernpaar nach dem Typ hinzufügt und durch Kommas in Klammern platziert, um die Dimensionen zu trennen.Im Beispiel wird auch die Dimensionen des Arrays an, indem ReDim-Anweisung (Visual Basic) verwendet.

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

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

Um eine Variable verzweigter Arrays zu deklarieren, fügen Sie ein Klammernpaar nach dem Variablennamen ein für jede Ebene des geschachtelten Arrays hinzu.

Dim inquiriesByYearMonthDay()()() As Byte

Die vorangehenden Beispiele deklarieren, Arrayvariablen jedoch weisen ihnen Arrays nicht zu.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

Indem Sie ein Arrayliteral verwenden, 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}

Wenn Sie den Typrückschluss verwenden, wird der Typ des Arrays anhand des bestimmenden Typs in der Liste der Werte bestimmt, die für das Arrayliteral angegeben wird.Der bestimmende Typ ist ein eindeutiger Typ, auf den alle anderen Typen im Arrayliteral erweitert eingibt.Wenn dieser eindeutige Typ nicht bestimmt werden kann, ist der bestimmende Typ der eindeutige Typ, auf den alle anderen Typen im Array kann eingrenzen eingibt.Wenn keiner dieser eindeutigen Typen bestimmt werden kann, ist der bestimmende Typ Object.Wenn die Liste von Werten, die für das Arrayliteral angegeben wird, Werte vom Typ Integer, Long und Double enthält, ist die resultierende Array vom Typ Double.Erweitern Integer und Long nur zu Double.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 Variablen sind, die in einem Klassenmember definiert werden.Sie können zwar Arrayliterale, wenn Sie Variablen auf Klassenebene erstellen, können Sie den Typrückschluss nicht auf Klassenebene verwenden.Daher leiten Arrayliterale, auf der Klassenebene angegeben werden, die Werte ab, die für das Arrayliteral als Typ Object angegeben werden.

Sie können den Typ der Elemente in einem Array explizit angeben, das erstellt wird, indem ein Arrayliteral verwendet wird.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}

wak0wfyt.collapse_all(de-de,VS.110).gifGeschachtelte Arrayliterale

Sie können ein mehrdimensionales Array mithilfe von geschachtelten Arrayliteralen erstellen.Geschachtelte Arrayliterale müssen eine Dimension sowie eine Anzahl von Dimensionen oder von 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 kann auch auftreten, wenn Sie explizit die Arrayvariable deklariert haben, um nicht zweidimensional sein.

HinweisHinweis

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 Ergebniswerte werden mit dem äußeren Arrayliteral, wie im folgenden Code veranschaulicht wird.

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 von einem Array

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

Im folgenden Beispiel wird durch ein eindimensionales Array durch, indem For...Next-Anweisung (Visual Basic) verwendet.Die GetUpperBound-Methode gibt den höchsten Wert zurück, der den Index haben 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 durch ein mehrdimensionales Array durch, indem eine For...Next-Anweisung verwendet.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 hohe 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 durch ein eindimensionales Array durch, indem For Each...Next-Anweisung (Visual Basic) verwendet.

Dim numbers = {10, 20, 30}

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

Im folgenden Beispiel wird durch ein mehrdimensionales Array durch, indem eine For Each...Next-Anweisung verwendet.Sie haben jedoch mehr Kontrolle über die Elemente eines mehrdimensionalen Arrays, wenn Sie eine geschachtelte For…Next-Anweisung verwenden, wie in einem vorherigen Beispiel, statt einer For Each…Next-Anweisung.

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

Um ein Array aus einer Function Prozedur zurückgibt, geben Sie den Arraydatentyp und Anzahl der Dimensionen als Rückgabetyp Function-Anweisung (Visual Basic) an.Innerhalb der Funktion deklarieren Sie eine lokale Arrayvariable mit demselben Datentyp und Anzahl der Dimensionen.In Return-Anweisung (Visual Basic) schließen Sie die lokale Arrayvariable ohne Klammern ein.

So fügen Sie ein Array als Parameter an eine Sub oder Function Prozedur angeben, den Parameter als Array mit einem angegebenen Datentyp und einer Anzahl von Dimensionen definieren.Im Aufruf der Prozedur, senden Sie eine Arrayvariable mit dem gleichen Datentyp und Anzahl von Dimensionen.

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

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 GetNumbersMultiDim-Funktion Integer(,) zurück.Dieser Arraytyp ist ein zweidimensionales Array vom Typ Integer.Die ShowNumbersMultiDim Prozedur akzeptiert ein Integer(,)-Argument.

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 enthält, während Elemente als Array von Arrays oder verzweigtes Array bezeichnet.Ein verzweigtes Array und jedes Element in einem verzweigten Array können eine oder mehrere Dimensionen verfügen.In einigen Fällen ist die Datenstruktur in einer Anwendung zweidimensional, jedoch nicht rechteckig.

Das folgende Beispiel enthält ein Array Monate, von denen jedes Element ein Array von ist.Da verschiedene Monate die verschiedenen 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, das keine Elemente enthält, wird auch ein Array der Länge 0 (null) aufgerufen.Eine Variable, die ein Array der Länge 0 (null) enthält, ist nicht mit dem Wert Nothing.Um ein Array ohne Elemente erstellen möchten, deklarieren Sie eine der Dimensionen des Arrays um -1, wie im folgenden Beispiel gezeigt wird.

Dim twoDimensionalStrings(-1, 3) As String

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

  • Ohne eine NullReferenceException Ausnahme zu riskieren, muss der Code auf Member der Klasse Array, wie Length oder Rank verweisen, oder rufen Sie eine Visual Basic-Funktion wie UBound auf.

  • 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) diese entweder erfordert, dass Sie ein Array der Länge 0 (null) zu einem oder mehreren Prozeduren zu übergeben oder zurückgibt ein Array der Länge 0 (null) aus einem oder mehreren Prozeduren.

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 System.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 sind für das Erstellen und Arbeiten mit einer festen Anzahl von stark typisierten Objekten besonders hilfreich.Auflistungen stellen eine flexiblere Möglichkeit, mit Gruppen - Objekten zu arbeiten.Im Gegensatz zu Arrays kann die Gruppe von Objekten, mit denen Sie kann bearbeiten und verkleinern dynamisch als die Anforderungen der Anwendung.

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.

Für einige Auflistungen können Sie einen Schlüssel an jedes Objekt zuweisen, das in die Auflistung einfügen, sodass Sie das Objekt schnell abrufen können, indem Sie Schlüssel verwenden.

Wenn die Auflistung Elemente eines Datentyps enthält, können Sie eine der Klassen im - Namespace System.Collections.Generic 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).

wak0wfyt.collapse_all(de-de,VS.110).gifBeispiel

Im folgenden Beispiel wird mit der generischen .NET Framework-Klasse System.Collections.Generic.List<T> 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