Oli*_*n04 3 c# linq string loops compare
我需要在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..." ]
Run Code Online (Sandbox Code Playgroud)
我一直在研究使用Levenshtein Distance Algorithm问题的"模糊"部分,以及迭代的LINQ.但是,A*B通常会导致超过15亿次比较.
我该怎么办呢?有没有办法快速"几乎比较"两个字符串列表?
也许仅仅比较子串就足够了,这会更有效:
var C = B.Where(s1 => A.Any(s2 => s1.IndexOf(s2, StringComparison.OrdinalIgnoreCase) >= 0)).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |