我需要找到 B 中“部分”存在于 A 中的所有字符串。
B = [ "Hello World!", "Hello Stack Overflow!", "Foo Bar!", "Food is nice...", "Hej" ]
A = [ "World", "Foo" ]
C = B.FuzzyCompare(A) // C = [ "Hello World!", "Foo Bar!", "Food is nice..." ]
我一直在考虑使用Levenshtein Distance Algorithm http://www.dotnetperls.com/levenshtein对于问题的“模糊”部分,以及LINQ https://msdn.microsoft.com/en-us/library/bb397927.aspx对于迭代。
然而,A * B 通常会产生超过 15 亿次比较。
我该怎么办?有没有办法快速“差不多”两个字符串列表?
也许简单地比较子字符串就足够了,这会更有效:
var C = B.Where(s1 => A.Any(s2 => s1.IndexOf(s2, StringComparison.OrdinalIgnoreCase) >= 0)).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)