Collection Klasse

Definition

Eine Visual Basic-Collection ist eine geordnete Menge von Elementen, auf die als Einheit verwiesen werden kann.

public ref class Collection sealed : System::Collections::IList
public ref class Collection sealed : System::Collections::IList, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public sealed class Collection : System.Collections.IList
[System.Serializable]
public sealed class Collection : System.Collections.IList, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type Collection = class
    interface ICollection
    interface IEnumerable
    interface IList
type Collection = class
    interface ICollection
    interface IList
[<System.Serializable>]
type Collection = class
    interface ICollection
    interface IList
    interface ISerializable
    interface IDeserializationCallback
Public NotInheritable Class Collection
Implements IList
Public NotInheritable Class Collection
Implements IDeserializationCallback, IList, ISerializable
Vererbung
Collection
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird das Collection Objekt names und ein Dialogfeld erstellt, mit dem ein Benutzer Objekte (Namen) zur Auflistung hinzufügen kann. Anschließend werden die Namen in der Auflistung angezeigt und schließlich die Auflistung geleert, ohne das Collection Objekt selbst zu entsorgen.

Um zu sehen, wie dies funktioniert, wählen Sie im Menü Project den Befehl "Klasse hinzufügen" aus, und deklarieren Sie eine öffentliche Variable, die auf Modulebene (nameClassTypPublic instanceName) aufgerufen instanceName wird, um die Namen jeder Instanz zu enthalten. Lassen Sie den Standardnamen als nameClass. Kopieren Sie den folgenden Code, und fügen Sie ihn in den Abschnitt "Allgemein " eines anderen Moduls ein, und starten Sie ihn dann mit der Anweisung classNamer in einer anderen Prozedur. (Dieses Beispiel funktioniert nur mit Hostanwendungen, die Klassen unterstützen.)

Public Class nameClass
    Public instanceName As String
End Class
Sub classNamer()
    ' Create a Visual Basic Collection object.
    Dim names As New Microsoft.VisualBasic.Collection()
    Dim key As Integer
    Dim msg As String
    Dim name As String
    Dim nameList As String = ""
    ' 1. Get names from the user to add to the collection.
    Do
        Dim inst As New nameClass()
        key += 1
        msg = "Please enter a name for this object." & vbCrLf &
              "Press Cancel to see names in collection."
        name = InputBox(msg, "Name the Collection items")
        inst.instanceName = name
        ' If user entered a name, add it to the collection.
        If inst.instanceName <> "" Then
            names.Add(inst, CStr(key))
        End If
    Loop Until name = ""
    ' 2. Create and display a list of names from the collection.
    For Each oneInst As nameClass In names
        nameList &= oneInst.instanceName & vbCrLf
    Next oneInst
    MsgBox(nameList, , "Instance Names in names Collection")
    ' 3. Remove elements from the collection without disposing of the collection.
    For count As Integer = 1 To names.Count
        names.Remove(1)
        ' Since Visual Basic collections are reindexed automatically, 
        ' remove the first member on each iteration.
    Next count
End Sub

Hinweise

Hinweis

Wenn möglich, sollten Sie die generischen Auflistungen im System.Collections.Generic Namespace oder im System.Collections.Concurrent Namespace anstelle einer Visual Basic Collectionverwenden. Weitere Informationen finden Sie unter Sammlungen – C# oder Sammlungen – Visual Basic.

Das Visual Basic-Objekt Collection bietet eine bequeme Möglichkeit, auf eine verwandte Gruppe von Elementen als einzelnes Objekt zu verweisen. Die Elemente oder Elemente in einer Auflistung müssen nur durch die Tatsache verknüpft werden, dass sie in der Auflistung vorhanden sind. Elemente einer Auflistung müssen nicht denselben Datentyp freigeben.

Sie können eine Auflistung so erstellen, wie Sie andere Objekte erstellen, wie das folgende Beispiel veranschaulicht.

Dim coll As New Microsoft.VisualBasic.Collection()  

Nachdem Sie eine Sammlung erstellt haben, können Sie eine der folgenden Aktionen ausführen:

  • Fügen Sie ein Element mit der Add Methode hinzu.

  • Entfernen sie ein Element mit der Remove Methode.

  • Entfernen Sie alle Elemente mit der Clear Methode.

  • Erfahren Sie, wie viele Elemente die Auflistung mit der Count Eigenschaft enthält.

  • Überprüfen Sie, ob ein bestimmtes Element mit der Contains Methode vorhanden ist.

  • Gibt ein bestimmtes Element aus der Auflistung mit der Item[] Eigenschaft zurück.

  • Durchlaufen Sie die gesamte Sammlung mit der For Each... Next-Anweisung.

    Hinweis

    Obwohl das Visual Basic-Objekt Collection mit dem Collection Objekt in Visual Basic 6.0 identisch ist, kann die beiden in einer COM-Umgebung nicht interoperiert werden.

    Achtung

    Das Durchlaufen einer Visual Basic Collection ist keine threadsichere Prozedur. Auch wenn die Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, wodurch der Aufzählungsator eine Ausnahme auslöst. Um die Threadsicherheit während der Aufzählung zu gewährleisten, sperren Sie die Auflistung, oder fangen Sie die Ausnahmen ab, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden. Weitere Informationen zum Sperren eines Programmierelements finden Sie unter SyncLock-Anweisung.

Konstruktoren

Collection()

Erstellt ein neues Collection-Objekt von Visual Basic und gibt dieses zurück

Eigenschaften

Count

Ruft die Anzahl der Elemente in einer Auflistung ab.

Item[Int32]

Ruft ein bestimmtes Element eines Collection-Objekts entweder nach Position oder nach Schlüssel ab.

Item[Object]

Ruft ein bestimmtes Element eines Collection-Objekts entweder nach Position oder nach Schlüssel ab.

Item[String]

Ruft ein bestimmtes Element eines Collection-Objekts entweder nach Position oder nach Schlüssel ab.

Methoden

Add(Object, String, Object, Object)

Fügt einem Collection-Objekt ein Element hinzu.

Clear()

Löscht alle Elemente eines Collection-Objekts in Visual Basic.

Contains(String)

Gibt einen Wert zurück, der angibt, ob ein Collection-Objekt in Visual Basic ein Element mit einem bestimmten Schlüssel enthält.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der die Auflistung durchläuft.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Remove(Int32)

Entfernt ein Element aus einem Collection-Objekt.

Remove(String)

Entfernt ein Element aus einem Collection-Objekt.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente der Collection in ein Array, beginnend bei einem bestimmten Array-Index.

ICollection.Count

Ruft die Anzahl der Elemente in dieser Auflistung ab.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf das Collection-Objekt synchronisiert (threadsicher) ist.

ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf das Collection-Objekt synchronisiert werden kann.

IDeserializationCallback.OnDeserialization(Object)

Wird ausgeführt, nachdem das gesamte Collection-Objektdiagramm deserialisiert wurde.

IEnumerable.GetEnumerator()

Ruft einen Enumerator ab, der die Auflistung durchläuft.

IList.Add(Object)

Fügt der Auflistung ein Element hinzu.

IList.Clear()

Entfernt alle Elemente aus dem Collection-Objekt.

IList.Contains(Object)

Bestimmt, ob das Collection-Objekt einen bestimmten Wert enthält.

IList.IndexOf(Object)

Bestimmt den Index eines bestimmten Elements im Collection-Objekt.

IList.Insert(Int32, Object)

Fügt dem Collection-Objekt am angegebenen Index ein Element hinzu.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob das Collection-Objekt eine feste Größe hat.

IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob das Collection-Objekt schreibgeschützt ist.

IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt dieses fest.

IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus dem Collection-Objekt.

IList.RemoveAt(Int32)

Entfernt das Collection-Objektelement am angegebenen Index.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Gibt die zum Serialisieren des Collection-Objekts erforderlichen Daten zurück.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für