Auflistungen in Visual Basic
Aktualisiert: November 2007
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-Objekt (Visual Basic).
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. Bei der ersten Variante ist der Index des ersten Elements in der Auflistung 0 und bei der zweiten Variante 1. Ein Beispiel für eine nullbasierte Auflistung ist die Controls-Auflistung von .NET Framework, die weiter oben auf dieser Seite erörtert wurde. Das Collection-Objekt von Visual Basic 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 (Collection-Objekt) 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 Collection-Klasse von Visual Basic ist aus Gründen der Kompatibilität mit älteren Version 1-basiert.
Index- und Schlüsselwerte
Instanzen der Collection-Klasse von Visual Basic ermöglichen den Zugriff auf ein Element mit einem numerischen Index oder einem String-Schlüssel. Sie können Collection-Objekten von Visual Basic entweder mit oder ohne Angabe eines Schlüssels Elemente 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 Collection-Objekt von Visual Basic ein universell einsetzbares Programmierungstool ist, ist es flexibler als andere Auflistungen. Es verfügt über eine Add-Methode (Collection-Objekt) zum Einfügen von Elementen in die Auflistung und eine Remove-Methode (Collection-Objekt), 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
Gewusst wie: Erstellen eines Arrays von Objekten
Gewusst wie: Hinzufügen, Löschen und Abrufen von Elementen einer Auflistung
Gewusst wie: Definieren von Auflistungen in eigenen Klassen
Gewusst wie: Durchlaufen einer Auflistung in Visual Basic
Problembehandlung bei Auflistungen