以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为什么这两种循环得到的结果不一样呢.都是删除临时表的列. (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153563) |
-- 作者:绿火柴 -- 发布时间: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
|
-- 作者:有点蓝 -- 发布时间:2020/8/15 8:52:00 -- 遍历删除肯定到倒序处理。 很简单的原因,假设把第一列删除了,第二列的索引就变成0了,第二次循环判断删除的是1,其实就是第3行。For Each底层一样是按索引处理的
|
-- 作者:绿火柴 -- 发布时间:2020/8/15 8:59:00 -- 明白了,是按索引值来的。索引值每循环一次,就会动态按最新的变一次。 |