Du machst dir Sorgen wegen ein paar kleineren Optimierungen und trotzdem verwendest du etwas in .Net, das .Net gar nicht kann?
Array instanzen in .Net sind IMMER fixed length. Im Gegensatz zu dyn. arrays in Delphi32 kosten Größenänderungen auch viel mehr Resourcen. Sie sind aber ganz nett als Rückgabewerte von Funktionen, die nicht mehr verändert werden müssen.
Mich würde jetzt mal interessieren, wie setLength die Werte des alten in den neuen Array kopiert.
Er kann keinen Overload für deinen value type haben, also wird er es wohl auf object boxen und danach wieder rausboxen. Was das heißt muss ich wohl nicht extra erwähnen, oder?
Ansonsten werfe ich das hier in den Raum:
Why SetLength is evil
.Net ist einfach zu anders um dort genauso zu programmieren, wie man es vorher gewohnt war...