如何检查两个字符串是否在C#中是部分匹配?

可能重复:
是否有为C#编写的模糊搜索或字符串相似性函数库?

我正在创建一个应用程序,除了用户输入歌曲或艺术家或专辑名称之外,然后将通过字符串数组或ArrayList查找任何可能的匹配。

将根据匹配百分比计算自动建议。

例如

如果用户键入链接prk,它应该找到Linkin ParkLink 80Link Wray但匹配百分比将对所有人不同

假设该集合仅搜索艺术家集合中的艺术家姓名和歌曲集合中的歌曲名称。

(百分比数字仅供参考)

 Linkin Park - 98% Link Wray -82% Link 80 - 62% 

解决方案不一定是C#代码,任何正则表达式或伪代码都会很好,但应该可以在C#中实现。

通常, Levenshtein距离的实现也称为编辑距离。 这将根据将一个字符串转换为另一个字符串所需的最小编辑次数找到匹配项,计算单个字符的所有插入,删除或替换作为“成本”的度量 – 候选者是具有最低成本的字符串。

这是一篇带有C#中通用实现的文章的链接。

你在寻找Levenshtein的距离

这是C#中的一个实现。

这是Levenshtein距离的通用实现 。 (如在两个IEnum之间的Diff / Dist。中)

用很多种语言实现Levenshtein距离算法。