Foxtable(狐表)用户栏目专家坐堂 → [求助]如何将两个集合合并成一个集合,并排除相同的元素


  共有3214人关注过本帖树形打印复制链接

主题:[求助]如何将两个集合合并成一个集合,并排除相同的元素

帅哥哟,离线,有人找我吗?
夏许多雪
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1218 威望:0 精华:0 注册:2018/2/25 13:54:00
[求助]如何将两个集合合并成一个集合,并排除相同的元素  发帖心情 Post By:2019/6/11 16:47:00 [只看该作者]

有两个集合 sb1s和 sb2s,各包括几个数组元素,要求将两个集合合并成一个集合,并将相同元素只取一个值,按下列程序运行后,是将两个集合全部合并,并没有去除相同元素,请帮忙看一下哪里不对。

Dim sb1s As List(of String())
sb1s = DataTables("职卫明细").GetValues("仪器编号1|仪器型号1|仪器名称1","仪器编号1 > ''") 
Dim sb2s As List(of String())
sb2s = DataTables("职卫明细").GetValues("仪器编号2|仪器型号2|仪器名称2","仪器编号2 > ''")  
If sb2s.Count > 0 Then
For i As Integer = 0 To sb2s.count - 1
If sb1s.Contains(sb2s(i)) = False Then
sb1s.Add(sb2s(i))
End If
Next
End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110642 积分:563118 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/6/11 20:55:00 [只看该作者]

代码没有问题。上传实例看看

 回到顶部
帅哥哟,离线,有人找我吗?
夏许多雪
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1218 威望:0 精华:0 注册:2018/2/25 13:54:00
  发帖心情 Post By:2019/6/11 22:18:00 [只看该作者]

在命令窗口中执行下列代码,可以看出并没有去除相同的数组。

Dim sb1s As List(of String())
sb1s = DataTables("职卫明细").GetValues("仪器编号1|仪器型号1|仪器名称1","仪器编号1 > ''") 
Dim sb2s As List(of String())
sb2s = DataTables("职卫明细").GetValues("仪器编号2|仪器型号2|仪器名称2","仪器编号2 > ''")  
If sb2s.Count > 0 Then
For i As Integer = 0 To sb2s.count - 1
If sb1s.Contains(sb2s(i)) = False Then
sb1s.Add(sb2s(i))
End If
Next
End If
For i As Integer = 0 To sb1s.Count - 1
Output.Show(sb1s(i)(0))
Output.Show(sb1s(i)(1))
Output.Show(sb1s(i)(2))
Next

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110642 积分:563118 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/6/11 23:04:00 [只看该作者]

数组集合是无法使用Contains进行判断的,试试下面代码就明白了

Dim str() As String = {"1","2"}
Dim str2() As String = {"1","2"}
Dim sb1s As new List(of String())
sb1s.Add(str)
Output.Show(sb1s.Contains(str2))

这样就可以

Dim sb1s As List(of String)
sb1s = DataTables("职卫明细").SQLGetValues("仪器编号1 + ',' + 仪器型号1 + ',' + 仪器名称1","仪器编号1 > ''")
Dim sb2s As List(of String)
sb2s = DataTables("职卫明细").SQLGetValues("仪器编号2 + ',' + 仪器型号2 + ',' + 仪器名称2","仪器编号2 > ''")

If sb2s.Count > 0 Then
    For i As Integer = 0 To sb2s.count - 1
        If sb1s.Contains(sb2s(i)) = False Then
            sb1s.Add(sb2s(i))
        End If
    Next
End If
For i As Integer = 0 To sb1s.Count - 1
    Output.Show(sb1s(i))
Next


 回到顶部
帅哥哟,离线,有人找我吗?
夏许多雪
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1218 威望:0 精华:0 注册:2018/2/25 13:54:00
  发帖心情 Post By:2019/6/12 13:59:00 [只看该作者]

知道了,数组集合无法使用Contains进行判断,只有另想办法了,谢谢。


 回到顶部