Collections
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.