以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]集合的值循环查询后返回匹配的值,并形成新的集合 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179633) |
||||
-- 作者:412873264 -- 发布时间:2022/8/31 23:31:00 -- [求助]集合的值循环查询后返回匹配的值,并形成新的集合 总共3个集合
Dim Q1 As List(Of String) ‘ 这个集合里包含了(123,234,345,456,567,789,110,156) Dim Q2 As List(Of String) ‘ 这个集合里包含了(12,78,11,15) 想实现这样的目的:依次查询集合Q2的值,是否包含于集合Q1的值里,如果包含,则返回集合Q1对应的值,并生成集合Q3 如下: Dim Q3 As List(Of String) ‘运行后,形成集合Q3,包含了(123,789,110,156)
请问老师,如何实现? |
||||
-- 作者:有点蓝 -- 发布时间:2022/9/1 8:59:00 -- Dim Q1 As new List(Of String) Q1.add("123") Q1.add("234") Q1.add("789") Dim Q2 As new List(Of String)
Q2.add("12") Q2.add("78") Dim Q3 As new List(Of String) for each s as string in Q2 for each s2 as string in Q1 if s2.contains(s) then Q3.add(s2) exit for end if next next |
||||
-- 作者:412873264 -- 发布时间:2022/9/2 0:20:00 -- [此贴子已经被作者于2022/9/2 0:26:07编辑过]
|
||||
-- 作者:chnfo -- 发布时间:2022/9/2 8:36:00 -- 按题主的意思,if s2.contains(s) then,这个似乎是用 s2 like "*" & s & "*" |
||||
-- 作者:412873264 -- 发布时间:2022/9/2 22:31:00 -- 是的。你的理解是对的。蓝老师理解偏了。谢谢。 |
||||
-- 作者:412873264 -- 发布时间:2022/9/3 0:20:00 -- [求助][求助]集合的值循环查询后返回匹配的值,并形成新的集合 我想表达的是4楼的意思。 我摸索了好几天,还是未实现功能。我把实例上传了。请蓝老师指点。 附件中: 表<仪器台账>中的仪器编号、仪器名称、仪器备注,合并成了\'仪器使用\'。这几个信息都要体现在本表"使用的仪器"下拉框中。现在的问题是:表<仪器台账>中的"仪器备注"是随时变化的,这就导致了“仪器使用”列也在变化,进而导致本表"使用的仪器"下拉框时,认为是不同的仪器(其实仪器编号未变,则就是相同的仪器)。应该怎样修改才能实现:即使修改了“仪器备注”,只要仪器编号相同,则仍然识别为同一台设备,进而实现本表“使用的仪器”下拉选项不会出现相同的仪器编号。 提前并对比前5个字符是否可行?
|
||||
-- 作者:有点蓝 -- 发布时间:2022/9/3 9:31:00 -- 回4楼、5楼,这2个用法完全是一样的,功能一样,你们有测试过吗!!上面是字符串的contains,不是集合的contains Output.Show("123456".Contains("345")) Output.Show("123456" Like "*345*") [此贴子已经被作者于2022/9/3 11:21:02编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/9/3 9:34:00 -- 至于6楼的项目,没看懂想表达的是什么意思? 使用的仪器到底想出现怎么样的下拉?使用具体数据举例说明,怎么样的结果是重复的,怎么样的结果是不重复的?
|
||||
-- 作者:412873264 -- 发布时间:2022/9/3 10:41:00 -- [求助] ![]() ![]() 请蓝老师指点。
|
||||
-- 作者:有点蓝 -- 发布时间:2022/9/3 11:52:00 -- 要这样处理,但是效率比较低,表格操作会比较卡。建议增加辅助列,然后使用下拉窗口 |