FOR EACH loItem IN myCollection > IF loItem.cType = 'keyword' > myCollection.Remove(loItem.cKey) > ENDIF >NEXT>
CLEAR xx=null createcoll() xx.keysort = 0 * issue ( a bug for me ) ? "forward loop bug ",'' at 20 FOR EACH occ IN xx && FOXOBJECT ?? occ IF occ=5 * internal index is 5 xx.Remove(5) * now the collection is rolled down * the NEXT go to 6 ( = 7 now ) and skip 6 ENDIF NEXT * simulation with index createcoll() ? "forward index simulation",'' at 20 icc=1 DO WHILE icc<=xx.Count ?? xx[m.icc] IF xx[m.icc]=5 xx.Remove(5) ENDIF icc=icc+1 ENDDO * for index createcoll() ? "backward index solution",'' at 20 FOR icc=xx.Count TO 1 STEP -1 ?? xx[m.icc] IF xx[m.icc]=5 xx.Remove(5) ENDIF NEXT * for each try createcoll() ? "backward loop bug",'' at 20 xx.keysort = 1 FOR EACH occ IN xx && FOXOBJECT ?? occ IF occ=5 xx.Remove(5) ENDIF NEXT PROCEDURE createcoll xx = CREATEOBJECT("collection") FOR k=1 TO 10 xx.Add(k) NEXT