以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何在多值数据中剔除重复的数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105799) |
|||||||||||||||||||||||||||||||||
-- 作者:zhuya820 -- 发布时间:2017/8/26 10:14:00 -- 如何在多值数据中剔除重复的数据 如何在多值数据中剔除重复的数据 代码如下: TextChanged事件 \'当前控件的下拉列表从列表目录中提取下拉清单的值 Dim cmb As WinForm.CheckedComboBox = e.form.Controls("CheckedComboBox批色添加") Dim cmb1 As WinForm.ComboBox = e.form.Controls("ComboBoxcolor_zname") Dim cmb2 As WinForm.CheckedComboBox = e.form.Controls("CheckedComboBoxcolor_cyname") Dim str As String If cmb.text <> "" Then str = cmb.text str = str.Replace(",","|") If cmb1.text = "" Then cmb2.text = str cmb2.writevalue cmb1.text = str Else cmb1.text = cmb1.text & "|" & str End If cmb1.writevalue End If 1-选择多值数据 就是列如: 已有列表数据:透明玻璃|半透明玻璃|棕色滤光玻璃璃|过滤杂光玻璃 现在新增数据:棕色滤光玻璃璃|过滤杂光玻璃|防强光玻璃|防紫外线玻璃|A1|B2|C3 自动更新数据应为:透明玻璃|半透明玻璃|棕色滤光玻璃璃|过滤杂光玻璃|防强光玻璃|防紫外线玻璃|A1|B2|C3 [此贴子已经被作者于2017/8/26 10:25:14编辑过]
|
|||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2017/8/26 10:38:00 -- 在ComboBox的Enter事件中加入类似代码: Dim cmb As WinForm.ComboBox = e.form.Controls("ComboBox1") cmb.ComboList = DataTables("表A").GetComboListString("颜色范围") |
|||||||||||||||||||||||||||||||||
-- 作者:zhuya820 -- 发布时间:2017/8/26 11:09:00 -- 还不像这个代码 就是说我现有目标行的数据已经有了,假设很多情况下如何外加多值数据的数据集合对已有数据进行查找并替换删除后,再添加至原有数据行中。 这样不会重复 |
|||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2017/8/26 11:30:00 -- 使用字符的split方法拆分原有的值,写入集合,新的值同样处理,然后遍历判断一下如果不在集合中的才添加,最后把集合还原为|连接的字符串 [此贴子已经被作者于2017/8/26 11:30:03编辑过]
|
|||||||||||||||||||||||||||||||||
-- 作者:zhuya820 -- 发布时间:2017/8/26 13:55:00 -- 现在得出 黑色|红色|A1|b1|c1|d1 这个数组 后面如何与前者对替换,没搞太明白写法-然后遍历判断一下如果不在集合中的才添加,最后把集合还原为|连接的字符串 谢谢老师指教 写个范例 [此贴子已经被作者于2017/8/26 13:55:38编辑过]
|
|||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2017/8/26 14:03:00 -- Dim s As String = "a|b|c" Dim s2 As String = "a|d|c|H|J" Dim lst As new List(of String) lst.AddRange(s.Split("|")) For Each v As String In s2.Split("|") If lst.Contains(v) = False Then lst.Add(v) Next Output.Show(String.Join("|",lst.ToArray()))
|
|||||||||||||||||||||||||||||||||
-- 作者:zhuya820 -- 发布时间:2017/8/27 10:01:00 -- 谢谢老师已解决 |
|||||||||||||||||||||||||||||||||
-- 作者:zhuya820 -- 发布时间:2017/8/27 11:20:00 -- 还有一个问题如何对上述列表字符进行自动排序后再写入呢??? |
|||||||||||||||||||||||||||||||||
-- 作者:zhuya820 -- 发布时间:2017/8/27 11:43:00 -- 再者集合 集合类似于数组,但是比数组更为灵活,定义集合的语法是: Dim 集合名称 As New List(Of 数据类型) 例如: Dim Names As New List(Of String) 表示定义了一个字符型(String)集合,集合的名称为Names。 集合的成员包括:
一旦定义了集合,我们就可以用Add方法向其中添加值,例如: 可不可以查找对象如 1 2 3 4 5# 对它查找后 查找值为# 有的跳过 没有的自动在后面+ “#” 这个如何实现 |
|||||||||||||||||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2017/8/27 12:04:00 -- Dim s As String = "b|c|a"
dim ary = lst.ToArray Output.Show(String.Join("|",ary)) |