Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#12

AW: Delete duplicates from list

  Alt 4. Jan 2012, 09:32
Die äussere For-Schleife hat aber mehr Durchläufe als nötig.
Ich würde da eine While-Schleife verwenden, die dann abbricht wenn es nichts mehr zu tun gibt.
Ungetestet:
Delphi-Quellcode:
CurrentIndex := 0
while CurrentIndex < List.Count - 1 do
begin
  for FollowingIndex := List.Count - 1 downto CurrentIndex + 1 do
    if List[CurrentIndex] = List[FollowingIndex] then
      List.Delete(FollowingIndex);
  Inc(CurrentIndex);
end;
Hätte die Stringliste z.B. 1000 identische Einträge würde die While-Schleife schon nach einem Durchlauf abbrechen, während eine For-Schleife alle restlichen 999 Einträge erfolglos durchtesten würde.
  Mit Zitat antworten Zitat