vb里空控件list在遍历的时候有直接遍历和倒序遍历,如For i = List1.ListCount - 1 To 0 Step -1
在删除表项的时候,为什么循环语句要用到倒序的方式?我知道删除一项表项的时候,列表框的项数会相应减少,但倒序不也一样减少么,依然会出现错误。期待你的指教...
在删除表项的时候,为什么循环语句要用到倒序的方式?我知道删除一项表项的时候,列表框的项数会相应减少,但倒序不也一样减少么,依然会出现错误。期待你的指教
展开
1个回答
展开全部
如果用for语句:
是一项一项地删除的,比如开始是3项如下:
1
2
3
如果直接遍历的话
for i=0 to 2
第一次删除了第一项,此时i=1,列表平就变成了
2
3
因为i=1所以应该删除第二项3,2就删除不了,而且此时ListCount=2减少了,也会造成FOR语句出错
-----------------------------------------------
如果是倒序遍历的话
For i = List1.ListCount - 1 To 0 Step -1(即i=2 to 0)
第一次删除了最后一项,此时i=1,List1.ListCount =2,列表平就变成了
1
2
此时i=1 ,删除第二项2
下次循环i=0,删除第一项1
-----------------------------------------------
其实最简单的方法是
list1.clear
列表就清除了
是一项一项地删除的,比如开始是3项如下:
1
2
3
如果直接遍历的话
for i=0 to 2
第一次删除了第一项,此时i=1,列表平就变成了
2
3
因为i=1所以应该删除第二项3,2就删除不了,而且此时ListCount=2减少了,也会造成FOR语句出错
-----------------------------------------------
如果是倒序遍历的话
For i = List1.ListCount - 1 To 0 Step -1(即i=2 to 0)
第一次删除了最后一项,此时i=1,List1.ListCount =2,列表平就变成了
1
2
此时i=1 ,删除第二项2
下次循环i=0,删除第一项1
-----------------------------------------------
其实最简单的方法是
list1.clear
列表就清除了
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询