以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于getvalues的使用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115852)

--  作者:狐说八道
--  发布时间:2018/3/15 16:34:00
--  关于getvalues的使用
老师,请问下面这段代码哪里有问题??

Dim Arys As List(Of String()) = DataTables("明细").GetValues("月|材料") \'列名用符号|分割
\'注意循环变量是字符型数组,所以类型是String(),而不是String
For Each s As String() In DataTables("期初").GetValues("月|材料")
    If arys.Contains(s) = False Then
        arys.add(s)
    End If
Next

例如,在“明细”表中 月 = 2018 ,材料 = A01 ;在“期初”表中 月 = 2018 ,材料 = A01。为什么执行上面代码时
还会将(2018,A01)添加到arys中呢?代码改怎么改才不会添加重复值呢??

--  作者:有点甜
--  发布时间:2018/3/15 16:50:00
--  

不能这样比较的。

 

Dim Arys As List(Of String()) = DataTables("明细").GetValues("月|材料") \'列名用符号|分割
\'注意循环变量是字符型数组,所以类型是String(),而不是String
For Each s As String() In DataTables("期初").GetValues("月|材料")
    Dim contains As Boolean = False
    For Each ary() As String In arys
        If ary(0) = s(0) AndAlso ary(1) = s(1) Then
            contains = True
            Exit For
        End If
    Next
    If contains = False Then
        arys.add(s)
    End If
Next


--  作者:狐说八道
--  发布时间:2018/3/15 17:09:00
--  
明白,谢啦