以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数组上行与下行是否相同的判断  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139261)

--  作者:zhuxinhui
--  发布时间:2019/8/9 10:54:00
--  数组上行与下行是否相同的判断
Dim nms3 As List(of String()) = DataTables("工资").GetValues("月份|部门", Tables("工资").filter) 
从工资表生成二维数组后,因为有多个月份存在,现在想按数组月份、部门进行汇总并进行相关处理,如何才能判别生成的数组月份不相同的这种情况呢??就是数组上一行与下一行不同时,再判别进行相关处理


--  作者:有点蓝
--  发布时间:2019/8/9 11:02:00
--  
for i as integer = 1 to nms3.count - 1
if nms(i-1)(0) <> nms(i)(0) then
\'某某处理
end if
next

--  作者:zhuxinhui
--  发布时间:2019/8/9 11:50:00
--  
nms()这个怎样定义


--  作者:有点蓝
--  发布时间:2019/8/9 11:53:00
--  
嗯,手误
for i as integer = 1 to nms3.count - 1
if nms3(i-1)(0) <> nms3(i)(0) then
\'某某处理
end if
next

--  作者:zhuxinhui
--  发布时间:2019/8/9 16:15:00
--  
for i as integer = 1 to nms3.count - 1
if nms3(i-1)(0) <> nms3(i)(0) then
\'某某处理
end if
next
或者改 为
for i as integer = 0 to nms3.count 
if nms3(i+1)(0) <> nms3(i)(0) then
\'某某处理
end if
next
还是出现索引超出范围的情况,第一个就少计了一个数值 

--  作者:zhuxinhui
--  发布时间:2019/8/9 16:15:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190809161129.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2019/8/9 16:22:00
--  
for i as integer = 0 to nms3.count -2
if nms3(i+1)(0) <> nms3(i)(0) then
\'某某处理
end if
next

少算和处理问题的逻辑思维有关,和代码没有关系。不管使用哪一种方法,不会想的都会漏一条。把第一条(或者最后一条)最后重新处理一下

--  作者:zhuxinhui
--  发布时间:2019/8/9 16:23:00
--  
就是数组会出现这种情况,数据表其他按钮就没有出现索引超出范转的情况


--  作者:有点蓝
--  发布时间:2019/8/9 16:28:00
--  
不会就上传实例
--  作者:zhuxinhui
--  发布时间:2019/8/9 16:30:00
--  
解决了,使用了强制退出循环及重复多写一段代码