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

时间:2015-06-04 02:04:12

标签: c# sql data-structures

我有一个相互关联的Numbers列表:

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#及其数据结构?

1 个答案:

答案 0 :(得分:0)

您不需要动态SQL,但您需要知道自己在寻找什么。如果你想要在3的第二个位置1205,那么使用:

where numbers like '%-1205-%'

第三组使用:

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

where numbers like '%-1205-01'

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

在任何情况下,您问题的完整答案可能都是正则表达式。但是,这些实现是特定于数据库的,您不会提到您正在使用的数据库。