Einzelnen Beitrag anzeigen

Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Löschen einer Generischen Liste

  Alt 13. Feb 2014, 09:31
Delphi-Version: 5
Delphi-Quellcode:
while i <= result.Count - 1 do
  begin
    a := 0;
    ElementeZumLoeschen := Tlist<integer>.create;
    repeat
      if result[i].isDominated(result[a]) then
      begin
        if ElementeZumLoeschen.IndexOf(a) = -1 then
        begin
          ElementeZumLoeschen.Add(a);

        end;
      end;
      if result[i].isDominated(result[result.Count - 1 - a]) then
      begin
        if ElementeZumLoeschen.IndexOf(result.Count - 1 - a) < 0 then
          ElementeZumLoeschen.Add(result.Count - 1 - a);
      end;

      inc(a);
    until (a > result.Count div 2);

    for a := 0 to ElementeZumLoeschen.Count - 1 do
      result.Delete(ElementeZumLoeschen[a]- a );

    freeandnil(ElementeZumLoeschen);

    inc(i);

  end;

bei den oben zu sehenden Code habe ich eine Liste, wenn folgende bestimmung erfüllt sind, merke ich mir den Index.
in einer For schleife laufe ich dann die Inhalte durch, mti den INdexen die gelöscht werden soll.
Problem; ich bekomm eine outofrange.
Sieht wer aufm Blick, was dort schief gelaufen ist ?

Oder gibt es noch ne andere Möglichkeit?

( laut DP suche, eine toarray Methode. Da ich dort aber eine Kopie meiner Liste erstelle, würde ich dies gern vermeinden)
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat