以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]多值去除重复值 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148286)
|
-- 作者:miaoqingqing
-- 发布时间:2020/4/3 21:03:00
-- [求助]多值去除重复值
求助中国,中国,美国,英国 去除重复值 中国,得到 中国,美国,英国
[此贴子已经被作者于2020/4/3 21:03:34编辑过]
|
-- 作者:qwz405
-- 发布时间:2020/4/5 10:12:00
--
Dim nms() As String = {"11","22","33","22","33","44"} \'定义包含现有数据的数组 Dim lst As new List(of String) \'定义一个字符集合 For Each s As String In nms \'获取数组中的每个值 If lst.Contains(s) Then Output.Show(s & "重复") \'如果集合中已存在,就显示 Else lst.Add(s) \'没有,则添加到集合 End If Next
|
-- 作者:miaoqingqing
-- 发布时间:2020/4/8 15:37:00
--
求助,下面代码怎么修改,实现汇总 参与人,排除重复值想实现效果 中国,中国,美国 去除重复值 中国,得到 中国,美国
下面代码不能排除重复的参与人 Dim drf As DataRow = e.DataRow Select Case e.DataCol.Name Case "裁判员","守门员","中锋队员" drf("参与人") = IIF(drf.IsNull("裁判员"),"",drf("裁判员")+",") drf("参与人") += IIF(drf.IsNull("守门员"),"",drf("守门员")+",") drf("参与人") += IIF(drf.IsNull("中锋队员"),"",drf("中锋队员")+",") drf("参与人") = drf("参与人").trimend(",") End Select
[此贴子已经被作者于2020/4/8 15:56:52编辑过]
|
-- 作者:有点蓝
-- 发布时间:2020/4/8 17:04:00
--
Dim drf As DataRow = e.DataRow Select Case e.DataCol.Name Case "裁判员","守门员","中锋队员" Dim lst As new List(of String) Dim nms As String = {"裁判员","守门员","中锋队员"} For Each s As String In nms If drf.IsNull(s) = False AndAlso lst.Contains(s) = False Then lst.Add(s) Next If lst.Count > 0 Then drf("参与人") = String.Join(",",lst.ToArray) else drf("参与人") = nothing End If End Select
|
-- 作者:miaoqingqing
-- 发布时间:2020/4/8 17:50:00
--
此主题相关图片如下:img_20200408_175519.jpg
想实现像上图,参与人自动根据右边3列值生成值,自动排除重复值,李四
[此贴子已经被作者于2020/4/8 18:11:50编辑过]
|
-- 作者:miaoqingqing
-- 发布时间:2020/4/9 8:02:00
-- 回复:(有点蓝)Dim drf As DataRow = e.DataRowSele...
蓝总,前楼代码不是想实现的效果,辛苦再帮忙
|
-- 作者:有点蓝
-- 发布时间:2020/4/9 9:26:00
--
旧数据重置一下列
|
-- 作者:miaoqingqing
-- 发布时间:2020/4/9 9:36:00
--
此主题相关图片如下:screenshot_20200409_093334.jpg
Dim drf As DataRow = e.DataRow Select Case e.DataCol.Name Case "裁判员","守门员","中锋队员" Dim lst As new List(of String) Dim nms() As String = {"裁判员","守门员","中锋队员"} \'Dim nms() As String = drf("参与人") For Each s As String In nms If drf.IsNull(s) = False AndAlso lst.Contains(s) = False Then lst.Add(s) Next If lst.Count > 0 Then drf("参与人") = String.Join(",",lst.ToArray) Else drf("参与人") = Nothing End If End Select
蓝总,参与人姓名被替换了,还没去处重复
[此贴子已经被作者于2020/4/9 9:37:13编辑过]
|
-- 作者:有点蓝
-- 发布时间:2020/4/9 10:09:00
--
If drf.IsNull(s) = False AndAlso lst.Contains(s) = False Then lst.Add(s)改为 If drf.IsNull(s) = False AndAlso lst.Contains(drf.IsNull(s) ) = False Then lst.Add(drf(s) )
|
-- 作者:miaoqingqing
-- 发布时间:2020/4/9 10:16:00
-- 回复:(有点蓝)If drf.IsNull(s) = False AndAlso l...
参与人,还是不能去除重复值
[此贴子已经被作者于2020/4/9 10:16:09编辑过]
|