Collection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein Visual Basic Collection ist eine sortierte Gruppe von Elementen, die als Einheit bezeichnet werden können.
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 der Auflistung Objekte (Namen) hinzufügen kann. Anschließend werden die Namen in der Auflistung angezeigt und schließlich die Auflistung geleert, ohne das Collection Objekt selbst zu entfernen.
Um zu sehen, wie dies funktioniert, wählen Sie den Befehl "Klasse hinzufügen" im Menü "Projekt" aus, und deklarieren Sie eine öffentliche Variable, die auf Modulebene nameClass (TypPublic instanceName) aufgerufen wirdinstanceName, um die Namen der einzelnen Instanzen aufzunehmen. Behalten Sie den Standardnamen bei nameClass. Kopieren Sie den folgenden Code, und fügen Sie ihn in den Abschnitt "Allgemein " eines anderen Moduls ein, und beginnen Sie ihn dann mit der Anweisung classNamer in einer anderen Prozedur. (Dieses Beispiel funktioniert nur bei 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 von 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 gemeinsam verwenden.
Sie können eine Auflistung auf die gleiche Weise wie andere Objekte erstellen, wie im folgenden Beispiel dargestellt.
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
Collectionidentisch mit demCollectionObjekt in Visual Basic 6.0 ist, können die beiden Interoperabilität in einer COM-Umgebung nicht möglich sein.Vorsicht
Das Durchlaufen von Visual Basic
Collectionist keine threadsichere Prozedur. Auch wenn die Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, was dazu führt, dass der Enumerationsgeber eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, sperren Sie entweder die Auflistung, oder erfassen Sie die Ausnahmen, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden. Weitere Informationen zum Sperren eines Programmierelements finden Sie unter SyncLock-Anweisung.
Konstruktoren
| Name | Beschreibung |
|---|---|
| Collection() |
Erstellt und gibt ein neues Visual Basic-Objekt Collection zurück. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Count |
Ruft die Anzahl der Elemente in einer Auflistung ab. |
| Item[Int32] |
Ruft ein bestimmtes Element eines |
| Item[Object] |
Ruft ein bestimmtes Element eines |
| Item[String] |
Ruft ein bestimmtes Element eines |
Methoden
| Name | Beschreibung |
|---|---|
| Add(Object, String, Object, Object) |
Fügt einem |
| Clear() |
Löscht alle Elemente eines Visual Basic-Objekts |
| Contains(String) |
Gibt einen Wert zurück, der angibt, ob ein Visual Basic-Objekt |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetEnumerator() |
Gibt einen Enumerator zurück, der die Auflistung durchläuft. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Remove(Int32) |
Entfernt ein Element aus einem |
| Remove(String) |
Entfernt ein Element aus einem |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Kopiert die Elemente des Elements in Collection 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 wird (threadsicher). |
| ICollection.SyncRoot |
Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf das Collection Objekt verwendet 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 ein Element in das Collection Objekt am angegebenen Index ein. |
| IList.IsFixedSize |
Ruft einen Wert ab, der angibt, ob das Collection Objekt eine feste Größe aufweist. |
| IList.IsReadOnly |
Ruft einen Wert ab, der angibt, ob das Collection Objekt ist. |
| IList.Item[Int32] |
Ruft das Element am angegebenen Index ab oder legt es 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
| Name | Beschreibung |
|---|---|
| AsParallel(IEnumerable) |
Aktiviert die Parallelisierung einer Abfrage. |
| AsQueryable(IEnumerable) |
Wandelt eine IEnumerable in eine IQueryableum. |
| Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. |
| OfType<TResult>(IEnumerable) |
Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ. |