根据与目标字符串的差异对字符串列表进行排序的最佳方法?

Joh*_*dol 0 .net c# sorting collections

我需要根据列表中的字符串和目标字符串之间的差异对List进行排序.

实现这种排序算法的最佳方法是什么?

我不太关心性能,但收藏可能会变得很大(让我们说五十个上衣).

感谢任何帮助!

Dea*_*unt 10

我建议计算Levenshtein距离,然后简单地按整数结果排序.(魔法代码)

public void Example()
{
    string target = "target";

    List<string> myStings = new List<string>();

    myStings.Add("this");
    myStings.Add("that");

    myStrings = myStrings.OrderBy(each => Levenshtein(each, target)).ToList();
}

public int Levenshtein(string stringA, string stringB)
{
    // Magic goes here
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

没有OrderBy的老skool 2.0家伙?

List<string> myStrings;
myStrings.Sort(LevenshteinCompare);
...

public class LevenshteinCompare: IComparer<string>
{
    public int Compare(string x, string y)
    {
        // Magic goes here
    }
}
Run Code Online (Sandbox Code Playgroud)