Gewusst wie: Erstellen einer Auflistung von Objekten

Aktualisiert: November 2007

Wie bei allen Objekten, wird eine Variable deklariert, die das Objekt enthalten soll. Anschließend wird das Auflistungsobjekt erstellt und der Variablen zugewiesen.

Für ein Auflistungsobjekt können Sie entweder die Visual Basic-Auflistungsklasse oder eine .NET Framework-Auflistungsklasse verwenden. Zum Erstellen einer generischen Auflistung benutzen Sie eine der Klassen des System.Collections.Generic-Namespaces. Eine generische Auflistung ist sinnvoll, wenn jedes Element der Auflistung zum gleichen Datentyp gehört. Generische Auflistungen setzen starke Typisierung durch, da ihnen nur Elemente des gewünschten Datentyps hinzugefügt werden können. Weitere Informationen finden Sie unter Gewusst wie: Definieren von typsicheren Auflistungen.

Sobald das Auflistungsobjekt erstellt wurde, können Sie Elemente hinzufügen und daraus entfernen und auf Elemente der Auflistung zugreifen.

Es folgen zwei Beispiele zum Erstellen von Auflistungen. Jede Auflistung enthält String-Elemente und ordnet jedem Element einen String-Schlüssel zu. Die ersten beiden Prozeduren erstellen mit der Visual Basic-Auflistungsklasse eine Auflistung. Die letzten beiden Prozeduren erstellen mit einer generischen .NET Framework-Auflistungsklasse eine Auflistung.

So erstellen Sie mit der Visual Basic-Auflistungsklasse eine Auflistung

  1. Deklarieren und erstellen Sie eine Visual Basic-Variable vom Typ Collection, wie im folgenden Beispiel gezeigt.

    Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
    

    Die Auflistung in sampleVisualBasicColl kann Elemente beliebigen Datentyps aufnehmen.

  2. Fügen Sie mit der Add-Methode (Collection-Objekt) der Auflistung Elemente hinzu. Im folgenden Beispiel werden vier String-Elemente erstellt und der Auflistung hinzugefügt. Es wird ein eindeutiger String-Wert als Schlüssel für jedes neue Element generiert. Dieser Wert wird der Add-Methode übergeben.

    Dim item1, item2, item3, item4 As String
    item1 = "Items"
    item2 = "In"
    item3 = "A"
    item4 = "Collection"
    sampleVisualBasicColl.Add(item1, "firstkey")
    sampleVisualBasicColl.Add(item2, "secondkey")
    sampleVisualBasicColl.Add(item3, "thirdkey")
    sampleVisualBasicColl.Add(item4, "fourthkey")
    

    Das Key-Argument ist in einer Visual Basic-Auflistung optional.

  3. Wenn Sie ein Element aus der Auflistung entfernen möchten, verwenden Sie die Remove-Methode (Collection-Objekt) und geben das Element entweder durch seinen Positionsindex oder seinen optionalen Schlüssel an. Dies wird anhand des folgenden Beispiels veranschaulicht:

    ' Remove the first element of the Visual Basic collection.
    sampleVisualBasicColl.Remove(1)
    ' Remove the element with the key "secondkey".
    sampleVisualBasicColl.Remove("secondkey")
    

    Wenn ein Element aus einer Visual Basic-Auflistung vom Typ Collection entfernt wird, werden die Indexwerte von 1 bis zum Wert der Count-Eigenschaft (Collection-Objekt) neu nummeriert.

So verwenden Sie For Each...Next zum Verarbeiten der Elemente der Visual Basic-Auflistung

  1. Deklarieren Sie eine Variable des Typs, der in der Auflistung gespeichert wird. Deklarieren Sie für das vorangehende Beispiel eine Variable vom Typ String, wie im folgenden Beispiel gezeigt.

    ' Insert code from the preceding example.
    Dim aString As String
    
  2. Überprüfen Sie mit der For Each...Next-Anweisung (Visual Basic) jedes Element der Auflistung. Im folgenden Beispiel wird eine bestimmte Zeichenfolge gesucht und angezeigt, falls sie gefunden wird.

    For Each aString in sampleVisualBasicColl
        If aString = "Collection" Then
            MsgBox(aString)
        End If
    Next aString
    

So erstellen Sie mit einer generischen Auflistungsklasse eine Auflistung

  1. Deklarieren und erstellen Sie eine .NET Framework-Variable vom Typ System.Collections.Generic.Dictionary<TKey, TValue>, wie im folgenden Beispiel gezeigt.

    Dim sampleGenericColl As New System.Collections.Generic.Dictionary(Of String, String)
    

    Die Variable sampleGenericColl dient zum Speichern einer typsicheren Auflistung, in die lediglich Elemente und Schlüssel vom Typ String eingefügt werden können.

  2. Fügen Sie mit der Dictionary<TKey, TValue>.Add-Methode der Auflistung Elemente hinzu. Im folgenden Beispiel werden vier String-Elemente erstellt und der Auflistung hinzugefügt. Es wird ein eindeutiger String-Wert als Schlüssel für jedes neue Element generiert. Dieser Wert wird der Add-Methode übergeben.

    Dim item1, item2, item3, item4 As String
    item1 = "Items"
    item2 = "In"
    item3 = "A"
    item4 = "Collection"
    sampleGenericColl.Add("firstkey", item1)
    sampleGenericColl.Add("secondkey", item2)
    sampleGenericColl.Add("thirdkey", item3)
    sampleGenericColl.Add("fourthkey", item4)
    

    In dieser generischen Auflistung ist das Key-Argument erforderlich.

  3. Um ein Element aus der Auflistung zu entfernen, verwenden Sie die IDictionary<TKey, TValue>.Remove-Methode. Um das zu entfernende Element zu identifizieren, muss der Schlüssel angegeben werden. Dies wird anhand des folgenden Beispiels veranschaulicht:

    If Not sampleGenericColl.Remove("thirdkey")
        ' Insert code to handle "thirdkey" not found in collection.
    End If
    

    Sie können mit einer For Each...Next-Anweisung die einzelnen Elemente einer Auflistung nacheinander verarbeiten, wie in der folgenden Prozedur gezeigt.

So verwenden Sie "For Each...Next" zum Verarbeiten der Elemente der generischen Auflistung

  1. Deklarieren Sie eine Variable des Typs, der in der Auflistung gespeichert wird. Deklarieren Sie für das vorangehende Beispiel eine Variable vom Typ String, wie im folgenden Beispiel gezeigt.

    ' Insert code from the preceding example.
    Dim aPair As KeyValuePair(Of String, String)
    
  2. Überprüfen Sie mit For Each...Next-Anweisung (Visual Basic) jedes Element der Auflistung. Im folgenden Beispiel wird eine bestimmte Zeichenfolge gesucht und angezeigt, falls sie gefunden wird.

    For Each aPair In sampleGenericColl
        If aPair.Value = "Items" Then
            MsgBox(aPair.Key & " -- " & aPair.Value)
        End If
    Next aPair
    

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Arrays von Objekten

Konzepte

Visual Basic-Auflistungsklasse

Referenz

System.Collections

System.Collections.Generic

System.Collections.Specialized

Collection-Objekt (Visual Basic)