如何确定数组中哪个字符串与给定字符串最相似?

Mic*_*eth 3 c# algorithm

给定一个字符串,

string name = "Michael";
Run Code Online (Sandbox Code Playgroud)

我希望能够评估数组中哪个字符串最相似:

string[] names = new[] { "John", "Adam", "Paul", "Mike", "John-Michael" };
Run Code Online (Sandbox Code Playgroud)

我想为用户创建一条消息:"我们找不到'Michael',但'John-Michael'很接近.这就是你的意思吗?" 我该如何做出这个决定?

Bro*_*ass 5

这通常使用编辑距离/ Levenshtein距离来完成,通过比较哪个单词是最接近的,基于将一个单词转换为另一个单词所需的删除,添加或更改的数量.

还有为您提供一个通用的实现为C#的文章在这里.