以文本方式查看主题

-  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=71922)

--  作者:yankunhao
--  发布时间:2015/7/20 17:02:00
--  关于从数组中获取不重复的值

请问有没一个简单的方法从一个字符串数组中获取不重复的值?

例如我有如下代码:

For Each dr1 As DataRow In drs1
        Dim s1 As String = dr1("item_no")
        Dim ss1() As String
        ss1 = s1.split("-")
        s1=ss1(0)
        ids = ids & ",\'" & s1 & "\'"
        ids = Ids.TrimStart(",")
    Next

 

现在的ids 中包括的编中有很多是重复的,请问如何将重复的编码去掉?


--  作者:大红袍
--  发布时间:2015/7/20 17:08:00
--  
For Each dr1 As DataRow In drs1
    Dim s1 As String = dr1("item_no")
    Dim ss1() As String
    ss1 = s1.split("-")
    s1=ss1(0)
    If ids.Contains(",\'" & s1 & "\'") = False Then
        ids = ids & ",\'" & s1 & "\'"
    End If
Next
ids = Ids.TrimStart(",")

--  作者:yankunhao
--  发布时间:2015/7/20 17:21:00
--  
以下是引用大红袍在2015/7/20 17:08:00的发言:
For Each dr1 As DataRow In drs1
    Dim s1 As String = dr1("item_no")
    Dim ss1() As String
    ss1 = s1.split("-")
    s1=ss1(0)
    If ids.Contains(",\'" & s1 & "\'") = False Then
        ids = ids & ",\'" & s1 & "\'"
    End If
Next
ids = Ids.TrimStart(",")

我试过了不行哦,运行也出错了!


--  作者:大红袍
--  发布时间:2015/7/20 17:25:00
--  
 可测试的例子和代码发上来。
--  作者:yankunhao
--  发布时间:2015/7/21 10:13:00
--  
以下是引用大红袍在2015/7/20 17:25:00的发言:
 可测试的例子和代码发上来。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:从数组中获取不重复的值.zip

现在我上传了个例子,请帮忙测试下。

[此贴子已经被作者于2015/7/21 10:13:20编辑过]

--  作者:大红袍
--  发布时间:2015/7/21 10:21:00
--  
Dim dt As  DataTable =DataTables("表A")
Dim ids As String = ""
Dim drs1 As List(of DataRow) = dt.Select("[第一列] is not null")
If drs1.Count > 0 Then
   
    For Each dr1 As DataRow In drs1
        Dim s1 As String = dr1("第一列")
        Dim ss1() As String
        ss1 = s1.split("-")
        s1=ss1(0)
       
       
        If ids.Contains("\'" & s1 & "\'") = False Then
            ids = ids & ",\'" & s1 & "\'"
                  
        End If
    Next
    ids = Ids.TrimStart(",")
   
    MessageBox.Show(ids)
   
End If

--  作者:yankunhao
--  发布时间:2015/7/21 10:53:00
--  
可以了,谢谢!