以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  代码简化  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=129747)

--  作者:edisontsui
--  发布时间:2019/1/5 9:01:00
--  代码简化
If dr("制造产品号").Substring(5,2) = "06" Or dr("制造产品号").Substring(5,2) = "08" Or dr("制造产品号").Substring(5,2) = "10" Or dr("制造产品号").Substring(5,2) = "12"or dr("制造产品号").Substring(5,2) = "13"or dr("制造产品号").Substring(5,2) = "16"or dr("制造产品号").Substring(5,2) = "20" Or dr("制造产品号").contains("600") Or dr("制造产品号").contains("800") Or dr("制造产品号").contains("1000") Or dr("制造产品号").contains("1250") Or dr("制造产品号").contains("1350") Or dr("制造产品号").contains("1600") Or dr("制造产品号").contains("2000")

上面这句代码,Or dr("制造产品号").Substring(5,2) = 和 Or dr("制造产品号").contains 都会重复出现,看起来眼花缭乱,如何简化一下这句代码呢?谢谢。

--  作者:2900819580
--  发布时间:2019/1/5 9:11:00
--  
Dim S1() As String = {"06","08"}
Dim S2() As String = {"0600","1600","2000"}
If s1.contains(dr("制造产品号").Substring(5,2)) OrElse s2.contains(dr("制造产品号").Substring(5,4)) Then

试试
[此贴子已经被作者于2019/1/5 9:12:15编辑过]

--  作者:有点蓝
--  发布时间:2019/1/5 9:20:00
--  
Dim arr() As String = {"06","08","10"}
Dim arr1() As String = {"600","800","1000"}
Dim contain As Boolean
Dim sph As sting = dr("制造产品号")
contain = Array.IndexOf(arr,sph.Substring(5,2)) > -1
If not contain Then
    For Each ar As String In arr1
        If sph.contains(ar) Then
            contain = True
            Exit
        End If
    Next
End If
If contain Then
其他处理
End If

--  作者:2900819580
--  发布时间:2019/1/5 9:36:00
--  
If not contain Then  老师,请教一下,这句怎么理解 


--  作者:有点蓝
--  发布时间:2019/1/5 9:42:00
--  
等同于

If contain = false Then