Collection Klasse

Definition

Eine Visual Basic-Collection ist eine geordnete Menge von Elementen, auf die als Einheit verwiesen werden kann.A Visual Basic Collection is an ordered set of items that can be referred to as a unit.

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

Beispiele

Im folgenden Beispiel werden das Collection - names Objekt und ein Dialogfeld erstellt, mit dem ein Benutzer der Auflistung Objekte (Namen) hinzufügen kann.The following example creates the Collection object names and a dialog box with which a user can add objects (names) to the collection. Anschließend werden die Namen in der Auflistung angezeigt, und schließlich wird die Auflistung geleert, ohne das Collection Objekt selbst zu verwerfen.It then displays the names in the collection, and finally empties the collection without disposing of the Collection object itself.

Um zu sehen, wie dies funktioniert, wählen Sie den Befehl Klasse hinzufügen aus dem Menü Projekt aus, instanceName und deklarieren Sie eine öffentliche Variable Public instanceName, die auf Modulebene von nameClass (Type) aufgerufen wird, um die Namen der einzelnen Instanzen zu speichern.To see how this works, choose the Add Class command from the Project menu and declare a public variable called instanceName at the module level of nameClass (type Public instanceName) to hold the names of each instance. Belassen Sie den Standardnamen nameClassals.Leave the default name as nameClass. Kopieren Sie den folgenden Code, fügen Sie ihn in den Abschnitt " Allgemein " eines anderen Moduls ein, und classNamer starten Sie ihn mit der-Anweisung in einer anderen Prozedur.Copy and paste the following code into the General section of another module, and then start it with the statement classNamer in another procedure. (Dieses Beispiel funktioniert nur mit Host Anwendungen, die-Klassen unterstützen.)(This example works only with host applications that support classes.)

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 anstelle eines Visual Basic System.Collections.Generic Collectiondie generischen Auflistungen im System.Collections.Concurrent -Namespace oder im-Namespace verwenden.Whenever possible, you should use the generic collections in the System.Collections.Generic namespace or the System.Collections.Concurrent namespace instead of a Visual Basic Collection. Weitere Informationen finden Sie unter Collections.For more information, see Collections.

Das Visual Basic Collection -Objekt stellt eine bequeme Möglichkeit dar, auf eine verwandte Gruppe von Elementen als einzelnes Objekt zu verweisen.The Visual Basic Collection object provides a convenient way to refer to a related group of items as a single object. Die Elemente oder Elementein einer Auflistung müssen nur durch die Tatsache verknüpft werden, dass Sie in der Auflistung vorhanden sind.The items, or elements, in a collection need only be related by the fact that they exist in the collection. Elemente einer Auflistung müssen nicht denselben Datentyp aufweisen.Elements of a collection do not have to share the same data type.

Sie können eine Sammlung auf die gleiche Weise wie andere Objekte erstellen, wie im folgenden Beispiel veranschaulicht.You can create a collection the same way you create other objects, as the following example illustrates.

Dim coll As New Microsoft.VisualBasic.Collection()  

Nachdem Sie eine Sammlung erstellt haben, können Sie eine der folgenden Aktionen ausführen:Once you have created a collection, you can do any of the following:

  • Fügen Sie ein-Element Add mit der-Methode hinzu.Add an element with the Add method.

  • Entfernen Sie ein Element mit Remove der-Methode.Remove an element with the Remove method.

  • Entfernen Sie alle-Elemente Clear mit der-Methode.Remove all elements with the Clear method.

  • Erfahren Sie, wie viele Elemente die Auflistung mit der Count -Eigenschaft enthält.Find out how many elements the collection contains with the Count property.

  • Überprüfen Sie, ob ein bestimmtes Element mit Contains der-Methode vorhanden ist.Check whether a specific element is present with the Contains method.

  • Gibt ein bestimmtes Element aus der Auflistung mit der Item[String] -Eigenschaft zurück.Return a specific element from the collection with the Item[String] property.

  • Iterieren Sie die gesamte Auflistung mit den for each-... Next-Anweisung.Iterate through the entire collection with the For Each...Next Statement.

    Hinweis

    Obwohl das Visual Basic Collection Objekt über Funktionen verfügt, die Collection mit dem Objekt in Visual Basic 6,0 identisch sind, können die beiden nicht in einer com-Umgebung zusammenarbeiten.Although the Visual Basic Collection object has functionality identical to the Collection object in Visual Basic 6.0, the two cannot interoperate in a COM environment.

    Achtung

    Beim Durchlaufen einer Visual Basic Collection handelt es sich nicht um eine Thread sichere Prozedur.Iterating through a Visual Basic Collection is not a thread-safe procedure. Auch wenn die Auflistung synchronisiert ist, können andere Threads die Auflistung weiterhin ändern, sodass der Enumerator eine Ausnahme auslöst.Even if the collection is synchronized, other threads can still modify the collection, causing the enumerator to throw an exception. Um die Thread Sicherheit während der Enumeration zu gewährleisten, Sperren Sie entweder die Auflistung, oder fangen Sie die Ausnahmen ab, die durch Änderungen von anderen Threads entstehen.To guarantee thread safety during enumeration, either lock the collection or catch the exceptions resulting from changes made by other threads. Weitere Informationen zum Sperren eines Programmier Elements finden Sie unter SyncLock-Anweisung.For more information on locking a programming element, see SyncLock Statement.

Konstruktoren

Collection()

Erstellt ein neues Collection-Objekt von Visual Basic und gibt dieses zurückCreates and returns a new Visual Basic Collection object.

Eigenschaften

Count

Ruft die Anzahl der Elemente in einer Auflistung ab.Gets the number of elements in a collection.

Item[Int32]

Ruft ein bestimmtes Element eines Collection-Objekts entweder nach Position oder nach Schlüssel ab.Gets a specific element of a Collection object either by position or by key.

Item[Object]

Ruft ein bestimmtes Element eines Collection-Objekts entweder nach Position oder nach Schlüssel ab.Gets a specific element of a Collection object either by position or by key.

Item[String]

Ruft ein bestimmtes Element eines Collection-Objekts entweder nach Position oder nach Schlüssel ab.Gets a specific element of a Collection object either by position or by key.

Methoden

Add(Object, String, Object, Object)

Fügt einem Collection-Objekt ein Element hinzu.Adds an element to a Collection object.

Clear()

Löscht alle Elemente eines Collection-Objekts in Visual Basic.Deletes all elements of a Visual Basic Collection object.

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.Returns a value that indicates whether a Visual Basic Collection object contains an element with a specific key.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der die Auflistung durchläuft.Returns an enumerator that iterates through the collection.

GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
Remove(Int32)

Entfernt ein Element aus einem Collection-Objekt.Removes an element from a Collection object.

Remove(String)

Entfernt ein Element aus einem Collection-Objekt.Removes an element from a Collection object.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente der Collection in ein Array, beginnend bei einem bestimmten Array-Index.Copies the elements of the Collection to an Array, starting at a particular Array index.

ICollection.Count

Ruft die Anzahl der Elemente in dieser Auflistung ab.Gets the number of items in this collection.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf das Collection-Objekt synchronisiert (threadsicher) ist.Gets a value that indicates whether access to the Collection object is synchronized (thread-safe).

ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf das Collection-Objekt synchronisiert werden kann.Gets an object that can be used to synchronize access to the Collection object.

IDeserializationCallback.OnDeserialization(Object)

Wird ausgeführt, nachdem das gesamte Collection-Objektdiagramm deserialisiert wurde.Runs after the entire Collection object graph has been deserialized.

IEnumerable.GetEnumerator()

Ruft einen Enumerator ab, der die Auflistung durchläuft.Gets an enumerator that iterates through the collection.

IList.Add(Object)
IList.Clear()

Entfernt alle Elemente aus dem Collection-Objekt.Removes all items from the Collection object.

IList.Contains(Object)

Bestimmt, ob das Collection-Objekt einen bestimmten Wert enthält.Determines whether the Collection object contains a specific value.

IList.IndexOf(Object)

Bestimmt den Index eines bestimmten Elements im Collection-Objekt.Determines the index of a specific item in the Collection object.

IList.Insert(Int32, Object)

Fügt dem Collection-Objekt am angegebenen Index ein Element hinzu.Inserts an item to the Collection object at the specified index.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob das Collection-Objekt eine feste Größe hat.Gets a value that indicates whether the Collection object has a fixed size.

IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob das Collection-Objekt schreibgeschützt ist.Gets a value that indicates whether the Collection object is.

IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt dieses fest.Gets or sets the element at the specified index.

IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus dem Collection-Objekt.Removes the first occurrence of a specific object from the Collection object.

IList.RemoveAt(Int32)

Entfernt das Collection-Objektelement am angegebenen Index.Removes the Collection object item at the specified index.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Gibt die zum Serialisieren des Collection-Objekts erforderlichen Daten zurück.Returns the data needed to serialize the Collection object.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für: