请问在循环中如何删除满足条件的行

请教在循环中怎么删除满足条件的行?我需要删除list中满足条件的行,如果在循环中直接删除,第二次循环时会报

请教在循环中怎么删除满足条件的行?
我需要删除list中满足条件的行,如果在循环中直接删除,第二次循环时会报错?要怎么修改呢?




var
 IPList:TList;
 i:Integer;
begin
  for i:=0 to IPList.Count-1 do
begin

           if '192.168.1.10'=IPList[i].Value then
           begin

             If IPList[i]<>nil  then
             begin
               TDSTCPChannel(IPList[i]).Close;
               IPList.Delete(i) ;     //删除此行,第二次循环就会报错
             end;

   End;

           continue;
         End;
End;

[解决办法]
倒着来

for i:= iplist.count-1 downto 0