TList< TPerson> 的删除,查询 都是 按指针来的,没有任何问题!!!

  TPerson = class
  private
    name: string;
    age: Integer;
  public
    constructor Create(name: string; age: Integer);
  end;

  constructor TPerson.Create(name: string; age: Integer);
begin
  inherited Create;
  Self.name := name;
  self.age := age;
end;
procedure TForm4.Button5Click(Sender: TObject);
begin
  var persons := TObjectList<TPerson>.Create;
  try
    var p1 := TPerson.Create('小李', 1);
    persons.Add(p1);
    persons.Add(TPerson.Create('小李', 3));
    var p4 := TPerson.Create('小李', 4);
    persons.Add(p4);
    persons.Add(TPerson.Create('小李', 2));

    persons.Remove(p1); //删除是按照指针来直接删除

    Memo1.Lines.Add('删除后,p4的索引' + persons.IndexOf(p4).ToString); //查询也是根据指针来查询
    
    for var v in persons do
    begin
      Memo1.Lines.Add(v.name + ' - ' + v.age.ToString);
    end;
  finally
    persons.Free;
  end;
end;

image

posted on 2024-12-03 08:43  del88  阅读(92)  评论(0)    收藏  举报