Как я могу получить string
из списка, который наилучшим образом соответствует базе string
, используя расстояние Левенштейна.Строка отображения ближайшего соответствия TextBox
Это мой код:
{
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();
}
В этом примере, если я запускаю код, я получаю 0 изменения в строки номер 5 из списка, так как я могу показать в TextBox
сам string
?
для Exemple: "Кокс 600мл" Сейчас моя TextBox
просто возвращает:
System.Linq.Enumerable+WhereEnumerableIterator`1
[System.Collections.Generic.KeyValuePair`2[System.String,System.Int32]]
Спасибо.
Что такое Ldis.Compute? – mybirthname
Ldis - мой дистанционный класс Левенштейна. –