Foxtable(狐表)用户栏目专家坐堂 → 为什么这两种循环得到的结果不一样呢.都是删除临时表的列.


  共有1932人关注过本帖树形打印复制链接

主题:为什么这两种循环得到的结果不一样呢.都是删除临时表的列.

帅哥哟,离线,有人找我吗?
绿火柴
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:4464 威望:0 精华:0 注册:2014/3/4 21:20:00
为什么这两种循环得到的结果不一样呢.都是删除临时表的列.  发帖心情 Post By:2020/8/14 20:48:00 [只看该作者]

为什么这两种循环得到的结果不一样呢.都是删除临时表的列.
用for each 只会删除 1,3,5,7,9列.
For Each cl As Col In tb_zh.Cols
    tb_zh.DataTable.DataCols.Delete(cl.Name)
Next

用for to 会正常删除所有列.
For zhi As Integer = tb_zh.Cols.Count - 1 To 0 Step -1
    tb_zh.DataTable.DataCols.Delete(tb_zh.Cols(zhi).Name)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/15 8:52:00 [只看该作者]

遍历删除肯定到倒序处理。

很简单的原因,假设把第一列删除了,第二列的索引就变成0了,第二次循环判断删除的是1,其实就是第3行。For Each底层一样是按索引处理的

 回到顶部
帅哥哟,离线,有人找我吗?
绿火柴
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:4464 威望:0 精华:0 注册:2014/3/4 21:20:00
  发帖心情 Post By:2020/8/15 8:59:00 [只看该作者]

明白了,是按索引值来的。索引值每循环一次,就会动态按最新的变一次。

 回到顶部