Hatte letztens exakt das gleiche Problem. Den Code auf eine IntegerList übertragen:
Delphi-Quellcode:
procedure TIntegerList.RemoveDoubles;
var
I, J, NewCount: integer;
begin
if Count > 1 then // Count = Length(Items);
begin
Sort;
I := 0;
NewCount := 0;
while I < Count do
begin
J := I;
while (J < Count - 1) and (Items[I] = Items[J + 1]) do
Inc(J);
Items[NewCount] := Items[I];
Inc(NewCount);
I := J + 1;
end;
Count := NewCount; // SetLength(Items, NewCount);
end;
end;