Collections 在多个离散集合中匹配特定项
我有一个问题,我有几个离散的ID列表,例如 列表(A)1,2,3,4,5,7,8Collections 在多个离散集合中匹配特定项,collections,vb6,matching,list-manipulation,Collections,Vb6,Matching,List Manipulation,我有一个问题,我有几个离散的ID列表,例如 列表(A)1,2,3,4,5,7,8 列表(B)2,3,4,5 列表(C)4,2,8,9,1 等等 然后我有另一个ID的集合… 例如:1,2,4 我需要尝试在每个列表中匹配一个。如果我可以完全匹配我的第二个集合中的所有ID(一个集合ID与每个列表中的ID匹配),那么我会得到一个真实的结果 我发现它变得很复杂,因为如果您只是在匹配您遇到的第一个集合/列表对的列表上进行迭代,可能会导致您排除可能的后续组合,从而返回假阴性结果 例如: 列表(A)1,2,3,
列表(B)2,3,4,5
列表(C)4,2,8,9,1
等等 然后我有另一个ID的集合…
例如:1,2,4 我需要尝试在每个列表中匹配一个。如果我可以完全匹配我的第二个集合中的所有ID(一个集合ID与每个列表中的ID匹配),那么我会得到一个真实的结果 我发现它变得很复杂,因为如果您只是在匹配您遇到的第一个集合/列表对的列表上进行迭代,可能会导致您排除可能的后续组合,从而返回假阴性结果 例如: 列表(A)1,2,3,4
列表(B)1,2,3,4
清单(C)3,4 集合为:3,1,2 集合(3)中的第一个ID与列表A中的一个条目匹配,集合(1)中的第二个ID与列表B中的一个条目匹配,但是集合(2)中的最终ID与列表C中的任何条目都不匹配。但是,如果将集合的顺序重新排列为:2,1,3,则会找到匹配项。。。。因此,我正在寻找某种形式的逻辑,以便以有效的方式尝试匹配所有可能的组合(?) 更复杂的是,ID实际上是GUID,所以不能按升序排序 我希望我已经很好地描述了这一点,以清楚地说明我正在尝试什么,幸运的是,有人能够告诉我,我需要做的是非常简单的,我错过了一些真正简单的事情
我被迫在VB6中编写此代码,但任何方法或伪代码都将非常有用。它的后端是SQL server,因此如果有可能使用TSQL的解决方案,这将更好,因为所有ID都已保存在表中
非常感谢。杰克,是的,列表和收藏都包含guid。我使用纯整数来简化这个问题 一旦一个列表被匹配,它就不能再被搜索,因此我试图解释排序问题。如果您说一个列表是“匹配”的,那么将不会执行进一步的匹配尝试。正是这种行为可能导致假阴性 在所有可能的订单组合中“发送”集合都会起作用,但这将是一项艰巨的工作 我觉得我一定错过了一个非常简单的概念或解决方案
感谢您迄今为止的帮助。我看不到一种方法可以将列表中包含的每个GUID与集合中的每个GUID进行检查。您必须保留集合中每个GUID出现的列表的记录 以集合(3,1,2)为例,3出现在列表A,B和C中。 您将基本上只剩下这个数据集
- 3(A、B、C)
- 1(A,B)
- 2(A,B)
- 3(C)
- 1()
- 2()
我想你会继续重复这个过程,直到确定一个负数或者排除所有的事件。对于这类问题,可能有一种公认的算法,但我在这方面的知识有点欠缺(那么,列表是否也包含GUID?一旦在列表中找到匹配项,该列表是否从进一步检查中删除?合并列表并在合并列表中搜索。