如何使用Levenshtein距離從列表中找到最符合string
的string
。文本框顯示最接近的匹配字符串
這是我的代碼:
{
string basestring = "Coke 600ml";
List<string> liststr = new List<string>
{
"ccoca cola",
"cola",
"coca cola 1L",
"coca cola 600",
"Coke 600ml",
"coca cola 600ml",
};
Dictionary<string, int> resultset = new Dictionary<string, int>();
foreach(string test in liststr)
{
resultset.Add(test, Ldis.Compute(basestring, test));
}
int minimun = resultset.Min(c => c.Value);
var closest = resultset.Where(c => c.Value == minimun);
Textbox1.Text = closest.ToString();
}
在這個例子中,如果我運行代碼,我得到的列表中串號5 0的變化,所以我怎麼能在TextBox
的string
本身顯示?
的爲例: 「可樂600毫升」 現在我只是TextBox
返回:
System.Linq.Enumerable+WhereEnumerableIterator`1
[System.Collections.Generic.KeyValuePair`2[System.String,System.Int32]]
感謝。
什麼是Ldis.Compute在幹什麼? – mybirthname 2014-09-22 03:57:14
Ldis是我的Levenshtein距離類。 – 2014-09-22 20:40:53