16,749
社区成员
发帖
与我相关
我的任务
分享
procedure TList<T>.Clear;
begin
Count := 0;
Capacity := 0;
end;
destructor TQueue<T>.Destroy;
begin
Clear;
inherited;
end;
procedure TQueue<T>.Clear;
begin
while Count > 0 do
Dequeue;
FHead := 0;
FTail := 0;
FCount := 0;
end;
destructor TStack<T>.Destroy;
begin
Clear;
inherited;
end;
procedure TStack<T>.Clear;
begin
while Count > 0 do
Pop;
SetLength(FItems, 0);
end;
procedure TDictionary<TKey,TValue>.Clear;
var
i: Integer;
oldItems: TItemArray;
begin
oldItems := FItems;
FCount := 0;
SetLength(FItems, 0);
SetCapacity(0);
FGrowThreshold := 0;
for i := 0 to Length(oldItems) - 1 do
begin
if oldItems[i].HashCode = 0 then
Continue;
KeyNotify(oldItems[i].Key, cnRemoved);
ValueNotify(oldItems[i].Value, cnRemoved);
end;
end;
var
vList: TList<TObject>;
i: integer;
begin
vList := TList<TObject>.Create;
for i := vList.Count - 1 downto 0 do
begin
vList.Items.Free;
vList.Delete(i);
end;
vList.Free;
end;