Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Löschen einer Generischen Liste

  Alt 13. Feb 2014, 10:46
Deine For-Schleife schaut nur ein einziges mal, bis wohin sie zählen soll. In z.B. C++ ist das anders, da kannst du eine Bedingung angeben.

Hier ein Minimalbeispiel, schau dir doch im Debugger mal an, wie myList immer kleiner wird, dein Index immer größer und dann kracht es:

Delphi-Quellcode:
procedure TForm19.FormCreate(Sender: TObject);
var
   myList: TList<Integer>;

   myListIndex: Integer;
begin

   myList := TList<Integer>.Create();
   myList.AddRange([1,2,3,4,5,6,7,8,9,10]);

   for myListIndex := 0 to Pred(myList.Count) do
      if (myListIndex mod 2 = 0) then
         myList.Delete(myListIndex);

end;

PS: Was du genau da genau machst habe ich aber nach mehreren Anläufen immer noch nicht verstanden. Variablennamen wie a und i sind zwar schnell getippt, aber ich komme ehrlich gesagt immer noch ganz hinterher. Willst du aus einer Liste schlichtweg alle Dinge entfernen, auf welche eine bestimmte Eigenschaft zutrifft?

Geändert von Der schöne Günther (13. Feb 2014 um 10:51 Uhr)
  Mit Zitat antworten Zitat