以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何将两个集合合并成一个集合,并排除相同的元素 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=136345) |
||||
-- 作者:夏许多雪 -- 发布时间: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
|
||||
-- 作者:有点蓝 -- 发布时间:2019/6/11 20:55:00 -- 代码没有问题。上传实例看看 |
||||
-- 作者:夏许多雪 -- 发布时间: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
|
||||
-- 作者:有点蓝 -- 发布时间: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 |
||||
-- 作者:夏许多雪 -- 发布时间:2019/6/12 13:59:00 -- 知道了,数组集合无法使用Contains进行判断,只有另想办法了,谢谢。 |