Arrays sind schneller und wenn ich die Schmerzfrei-Lösch-Funktionalität nicht brauche, hänge ich mir keine Liste ans Bein. Warum auch?
Wie ich schon gesagt habe, viele Delphi Entwickler sind einfach blind gegenüber Techniken die sich in anderen Programmiersprachen schon längst durchgesetzt haben.
Delphi-Quellcode:
// a.)
// löschen eines Elements in einem Array
var
i, x : integer;
begin
x := 4; // Element Position die gelöscht werden soll
for i:= x+1 to High(MyArray) do
begin
MyArray[i-1] := MyArray[i];
end;
SetLength(MyArray, Length(MyArray)-1);
end;
// b.)
// und jetzt das Gleiche mit einer Liste
MyList.Delete(4);
Und jetzt stelle man sich vor, dass man 5 versch. Arrays bzw. Listen hat.
Welcher Lösung wäre zu bevorzugen 5 * a.) oder 5 * b.) ?
Den Code bei a.) habe einfach so hingeschrieben; es ist gut möglich
dass er Fehler hat.
(Es sind übrigens min. 2 Fehler enthalten - wer findet sie?)
Bei b.) ist es ausgeschlossen, dass ein Fehler enthalten ist.