如何最好地基于链接在一起的对象创建过滤器?

本文关键字:在一起 对象 创建 过滤器 链接 何最好 于链接 | 更新日期: 2023-09-27 17:53:29

我有一个相互链接的数字列表:

000-1100-00
001-1100-00
000-1205-01
001-1205-01
001-1205-00

等等…

我需要一个数据结构或一种方法,能够在上面应用过滤器。

例如,如果第二组数字必须在1205上过滤,那么这些数字将返回为

001-1205-01
000-1205-01
001-1205-00

第二个过滤器可能会在第一个过滤器之后应用,如果我对第三组数字01进行过滤,那么返回的数字将是:

001-1205-01
000-1205-01

现在,可能有N个集合所以它不仅仅是三个集合。然而,所有的数字都有相同数量的集合,所以如果集合的数量是4,它最终看起来像这样:

123-11-22-54

我有什么选择?

如果我将上述列添加到SQL数据库中,我如何在不使用动态SQL创建过滤器的情况下进行搜索?

如果不通过SQL,是否有c#和它的数据结构的替代方案?

如何最好地基于链接在一起的对象创建过滤器?

您不需要动态SQL,但您确实需要知道您在寻找什么。如果您希望1205在3的第二个位置,那么使用:

where numbers like '%-1205-%'

对于第三组使用:

where numbers like '%-1205-%' and numbers like '%-01'

where numbers like '%-1205-01'

这是关于构造正确的参数进行比较,而不是动态SQL。

在任何情况下,问题的完整答案很可能是正则表达式。然而,这些的实现是完全特定于数据库的,并且您不需要提及您使用的是哪个数据库。