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.
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 werden 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 löschen.
Um zu sehen, wie dies funktioniert, wählen Sie im Menü Projekt den Befehl Klasse hinzufügen aus, und deklarieren Sie eine öffentliche Variable namens instanceName
auf Modulebene nameClass
(TypPublic instanceName
), um die Namen der einzelnen instance zu enthalten. Übernehmen Sie den Standardnamen als nameClass
. Kopieren Sie den folgenden Code, 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 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 - System.Collections.Concurrent Namespace anstelle von Visual Basic Collection
verwenden. Weitere Informationen finden Sie unter Collections – C# oder Collections – Visual Basic.
Das Visual Basic-Objekt Collection
bietet eine bequeme Möglichkeit, auf eine verknüpfte 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 verwenden.
Sie können eine Auflistung auf die gleiche Weise wie andere Objekte erstellen, wie im folgenden 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.
Ermitteln 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 for Each... Next-Anweisung.
Hinweis
Obwohl das Visual Basic-Objekt
Collection
über funktionen verfügt, die mit demCollection
-Objekt in Visual Basic 6.0 identisch sind, können beide nicht in einer COM-Umgebung zusammenarbeiten.Achtung
Das Durchlaufen einer Visual Basic-Datei
Collection
ist keine threadsichere Prozedur. Selbst wenn die Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, sodass der Enumerator eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, sperren Sie entweder 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 |
Item[Object] |
Ruft ein bestimmtes Element eines |
Item[String] |
Ruft ein bestimmtes Element eines |
Methoden
Add(Object, String, Object, Object) |
Fügt einem |
Clear() |
Löscht alle Elemente eines |
Contains(String) |
Gibt einen Wert zurück, der angibt, ob ein |
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 |
Remove(String) |
Entfernt ein Element aus einem |
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. |