Appending one element to a dynamic array

前端 未结 8 2214
太阳男子
太阳男子 2020-12-05 05:16

This is a very frequent pattern throughout my code:

SetLength(SomeDynamicArray, Length(SomeDynamicArray)+1);
SomeDynamicArray[High(SomeDynamicArray)] := NewE         


        
8条回答
  •  不知归路
    2020-12-05 06:00

    Here's a hack with generics which only works with TArray:

    type
      TAppender = class
        class procedure Append(var Arr: TArray; Value: T);
      end;
    
    class procedure TAppender.Append;
    begin
      SetLength(Arr, Length(Arr)+1);
      Arr[High(Arr)] := Value;
    end;
    

    Usage:

    var
      TestArray: TArray;
    
    begin
      TAppender.Append(TestArray, 5);
    end.
    

提交回复
热议问题