我正在寻找在列表或字符串数组中查找匹配模式的方法,特别是在.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"
我想报告的匹配项的发生情况
("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)
...以及其他任何人。
我用它来解决问题,而不是专门制造它的商业产品,而宁愿不手工做(有110个列表,大约100-200个项目)。
是否有任何算法,现有代码或思想可以帮助我完成所描述的结果?
最佳答案
正如其他人提到的那样,您想要的功能是“相交”。如果您使用的是.NET 3.0,请考虑使用LINQ的Intersect函数。
参见the following post for more information
考虑使用LinqPAD进行实验。
www.linqpad.net
关于string - 如何在字符串列表/数组中找到相似的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/483429/