DruckenMister WongFacebook

Collections

von Neil Moffatt

ArrayList

Arrays in Delphi für .NET in einigen Varianten:

1. Native statische Delphi-Arrays

Sie werden so definiert:

var MyArray: Array[1..3] of Byte;

Sie sind statisch, da man den Platz für das gesamte Array bei der Variablendeklaration angibt. Auf diese Größe ist man dann festgelegt. Allerdings kann man die Array-Indizierung wählen - hier haben wir von 1 bis 3.

2. Native dynamische Delphi-Arrays

Sie werden so definiert:

var
  MyArray: Array of Byte;
begin
  SetLength(MyArray,
3);

Sie sind dynamisch, da man den Platz zur Laufzeit anfordert (indem man die SetLength-Prozedur aus der Runtime Library verwendet). Außerdem kann man die Größe verändern und dabei das Array zu jeder Zeit erweitern oder abschneiden. Allerdings ist man auf die nullbasierte Indizierung festgelegt - das Beispiel-Array hat die Elemente 0 bis 2.

3. Der .NET-Typ System.Array

Sie werden so definiert:

var
  MyArray: System.Array;
begin
  MyArray := System.Array.CreateInstance(TypeOf(Byte),
3);

Sie verhalten sich wie native dynamische Arrays, allerdings handelt es sich um Objekte, nicht um primitive Datentypen. Sie können mehrere Dimensionen enthalten, und diese sind in dem einen Array-Objekt enthalten (primitive mehrdimensionale Arrays sind im Grunde Arrays von Arrays).

4. Die .NET-Collection System.Collection.ArrayList

Sie werden so definiert:

var
  MyArray: System.Collections.ArrayList;
begin
  MyArray := System.Collections.ArrayList.Create;

Hier haben wir den .NET-Collection-Typ eines Arrays. Er erlaubt einem, ein- oder mehrdimensionale Arrays von Objekten zu definieren. Elemente sind immer Objekttypen. Anders als in den bisherigen Arrays kann man hier Elemente frei hinzufügen, updaten und löschen.

Er bietet außerdem Methoden zum Umkehren, Sortieren und Durchsuchen der Arrayliste.

Man verwendet eine ArrayList, wenn man mit unbeständigen Daten arbeitet - zum Beispiel Listen mit Einträgen, die ein Anwender frei bearbeiten kann.