Ich bin mir recht sicher, dass ich ein Element auch einer TList<t> so löschen muss, aber es ist besser ich frage bevor es Speicherleaks oder
AV gibt.
Delphi-Quellcode:
TDataItem = class
Modified: int64;
Data: string;
Constructor Create(iModified: int64; sData: string);
end;
var
TestList: TList<TDataItem>;
DataItem: TDateItem;
i: Integer;
...
TestList := TList<TDataItem>.Create;
for i := 0 to 10 do
TestList.Add(TDataItem.Create(i,'test'));
DataItem := TestList[5];
TestList.Delete(5);
DataItem.Free; // nötig?
Ich hab noch zusätzliche Fragen zu List.Remove()
Wird beim Remove das Objekt automatisch befreit, oder muss ich es auch manuell mit Free tun?
Was ist wenn ich an Remove ein Objekt übergebe welches mehrmals in der Liste vorhanden ist. Wird da nur das erste gefundene gelöscht?
Muss ich um Remove zu verwenden beim Erstellen von TestList einen IComparer mit angeben?