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

如何在C#中检查两个字符串是否部分匹配?,c#,string,match,partial,C#,String,Match,Partial,可能重复: 我正在创建一个应用程序,它将删除用户输入的歌曲、艺术家或专辑名,然后通过字符串数组或ArrayList查找任何可能的匹配项 自动建议将根据匹配百分比进行计算 比如说 如果用户类型链接prk,则应查找链接公园或链接80或链接范围,但所有用户的匹配百分比将不同 假设集合将只搜索艺术家集合中的艺术家姓名和歌曲集合中的歌曲名称 (百分比数字仅供解释) 解决方案不必是C#代码,任何正则表达式或伪代码都很好,但应该可以在C#中实现。通常使用也称为编辑距离的实现来实现这一点。这将根据将一个字符串

可能重复:

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

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

比如说

如果用户类型链接prk,则应查找
链接公园
链接80
链接范围
,但所有用户的匹配百分比将不同

假设集合将只搜索艺术家集合中的艺术家姓名和歌曲集合中的歌曲名称

(百分比数字仅供解释)


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

通常使用也称为编辑距离的实现来实现这一点。这将根据将一个字符串转换为另一个字符串所需的最小编辑次数来查找匹配项,计算单个字符的所有插入、删除或替换,作为“成本”的衡量标准—候选字符串是具有最小成本的字符串

这里有一个指向的链接,其中包含您正在寻找的C#中的通用实现

这是一本书。(如两个
IEnum
之间的差异/距离)


没错,但要为大型数据集上良好的CPU冷却做好准备:)的副本
Linkin Park - 98%
Link Wray -82%
Link 80 - 62%