Auflistungen in Visual Basic

Eine Auflistung ist ein Objekt zum Gruppieren und Verwalten verwandter Objekte. Beispielsweise verfügt jedes Form über eine Auflistung von Steuerelementen. (Sie können auf diese Auflistung über die Controls-Eigenschaft des Formulars zugreifen.) Diese Auflistung ist ein Objekt, das alle Steuerelemente in dem betreffenden Formular darstellt. Sie ermöglicht es Ihnen, ein Steuerelement in der Auflistung über seinen Index abzurufen und die Member der Auflistung mithilfe einer For Each...Next-Anweisung (Visual Basic) zu durchlaufen.

Es gibt jedoch mehrere Arten von Auflistungen, und sie unterscheiden sich in mehreren Merkmalen.

Verschiedene Arten von Auflistungen

Visual Basic stellt auch eine Collection-Klasse bereit, mit der Sie eigene Auflistungen definieren und erstellen können. Wie die Controls-Auflistung eines Formulars stellt auch die Collection-Klasse integrierte Funktionen zum Durchlaufen von Elementen mit For Each...Next und zum Abrufen von Elementen anhand ihres Index bereit. Weitere Informationen finden Sie unter Collection.

Eine Interaktion zwischen den beiden Arten von Auflistungen ist jedoch nicht möglich. Beispielsweise verursacht der folgende Code einen Compilerfehler.

Dim localControls As Collection

' The following line generates a COMPILER ERROR.

localControls = Me.Controls()

Die Auflistungen sind inkompatibel, weil die Controls-Auflistung eine .NET Framework-Auflistung ist, während die Variable localControls eine Visual Basic Collection ist. Die zwei Arten von Auflistungen werden von unterschiedlichen Klassen implementiert. Ihre Methoden sind ähnlich, doch nicht identisch, und ihre Indizierungsschemas unterscheiden sich voneinander.

0- und 1-basierte Auflistungen

Eine Auflistung ist je nach ihrem Startindex nullbasiert oder 1-basiert. Ersteres bedeutet, dass der Index des ersten Elements in der Auflistung 0 ist, letzteres bedeutet, dass er 1 ist. Ein Beispiel für eine nullbasierte Auflistung ist die hier bereits erläuterte .NET Framework Controls-Auflistung. Das Visual Basic-Collection-Objekt ist ein Beispiel für eine 1-basierte Auflistung.

1-basierte Auflistungen sind für Visual Basic-Benutzer möglicherweise intuitiver in der Verwendung, da der Index von 1 bis zum Wert der Count-Eigenschaft reicht, die die Anzahl der Elemente in einer Auflistung zurückgibt. Der Index einer nullbasierten Auflistung reicht hingegen von 0 bis zum Wert der Count-Eigenschaft minus 1. Dies kann sinnvoll sein, wenn die Indexwerte Offsets eines Basiswerts sind oder den Membern einer nullbasierten Enumeration entsprechen.

.NET Framework-Auflistungen sind aus Gründen der Standardisierung nullbasiert. Die Visual Basic-Collection-Klasse ist aus Gründen der Kompatibilität mit älteren Version 1-basiert.

Index- und Schlüsselwerte

Instanzen der Visual Basic-Collection-Klasse ermöglichen den Zugriff auf ein Element mit einem numerischen Index oder einem String-Schlüssel. Sie können Visual Basic-Collection-Objekten Elemente entweder mit oder ohne Angabe eines Schlüssels hinzufügen. Wenn Sie ein Element ohne einen Schlüssel hinzufügen, müssen Sie seinen numerischen Index verwenden, um darauf zuzugreifen.

Im Gegensatz dazu lassen Auflistungen wie System.Collections.ArrayList nur einen numerischen Index zu. Sie können Elementen dieser Auflistungen nur Schlüssel zuordnen, wenn Sie eine eigene Zuordnung erstellen, die z. B. auf einem String-Array mit den Schlüsseln beruht.

Hinzufügen und Entfernen von Elementen

Auflistungen unterscheiden sich auch dahingehend, ob Sie ihnen Elemente hinzufügen können und, sofern dies möglich ist, auf welche Weise diese Elemente hinzugefügt werden. Da das Visual Basic-Collection-Objekt ein universell einsetzbares Programmierungstool ist, ist es flexibler als andere Auflistungen. Es verfügt über eine Add-Methode zum Einfügen von Elementen in die Auflistung und eine Remove-Methode, um Elemente daraus zu entfernen.

Bestimmte spezielle Auflistungen hingegen lassen das Hinzufügen oder Entfernen von Elementen mithilfe von Code nicht zu. Die CheckedListBox.CheckedItems-Eigenschaft beispielsweise gibt eine Auflistung von Verweisen auf Elemente über den Index zurück, doch in Code können der Auflistung keine Elemente hinzugefügt oder aus dieser entfernt werden. Dies kann nur durch den Benutzer erfolgen, indem er das entsprechende Feld auf der Benutzeroberfläche aktiviert oder deaktiviert. Es gibt also für diese Auflistung keine Add-Methode oder Remove-Methode.

Siehe auch

Aufgaben

Gewusst wie: Erstellen einer Auflistung von Objekten (Visual Basic)

Gewusst wie: Erstellen eines Arrays von Objekten (Visual Basic)

Gewusst wie: Hinzufügen, Löschen und Abrufen von Elementen einer Auflistung (Visual Basic)

Gewusst wie: Definieren von Auflistungen in eigenen Klassen (Visual Basic)

Gewusst wie: Durchlaufen von Auflistungen in Visual Basic

Problembehandlung bei Auflistungen (Visual Basic)

Konzepte

Übersicht über Auflistungsinitialisierer (Visual Basic)

Verwalten von Objektgruppen in Visual Basic

Visual Basic-Auflistungsklasse

Verwalten von Objekten mit Auflistungen (Visual Basic)