如何在列表/字符串数组中找到类似的模式

Sti*_*ack 6 string pattern-matching

我正在寻找在列表或字符串数​​组中找到匹配模式的方法,特别是在.NET中,但是来自其他语言的算法或逻辑会很有帮助.

假设我有3个数组(或在此特定情况下List(Of String))

Array1
"Do"
"Re"
"Mi"
"Fa"
"So"
"La"
"Ti"

Array2
"Mi"
"Fa"
"Jim"
"Bob"
"So"

Array3
"Jim"
"Bob"
"So"
"La"
"Ti"
Run Code Online (Sandbox Code Playgroud)

我想报告一下比赛的发生情况

("Mi", "Fa") In Arrays (1,2)
("So") In Arrays (1,2,3)
("Jim", "Bob", "So") in Arrays (2,3)
("So", "La", "Ti") in Arrays (1, 3)
Run Code Online (Sandbox Code Playgroud)

......和其他任何人.

我用它来解决一个问题,而不是专门制作它的商业产品,而不是手工做(有110个约100-200项的清单).

是否有任何算法,现有代码或想法可以帮助我找到所描述的结果?

Mar*_*ell 2

正如其他人提到的,您想要的功能是 Intersect。如果您使用 .NET 3.0,请考虑使用 LINQ 的 Intersect 函数。

请参阅以下帖子了解更多信息

考虑使用 LinqPAD 进行实验。

www.linqpad.net