我有一个ListBox和所有英文名称的列表。
好的,我们假设一个“用户”输入字母“J”。我希望我的ListBox选择一些项目(可能是5个)来向用户显示结果。
我不希望当我的用户键入“J”并且ListBox必须加载以“J”开头的每个名称。我希望我的ListBox所做的就是从字母J开始随机加载一些项目结果。
List<string> DictionaryList = new List<string>().Take(5).ToList();
//WEB
WebClient web = new WebClient();
String html = web.DownloadString("http://www.EXAMPLE.org/Letter/J");
MatchCollection m1 = Regex.Matches(html, @"<li>\s*(.+?)\s*</li>", RegexOptions.Singleline);
foreach (Match m in m1)
{
string city = m.Groups[1].Value;
DictionaryList.Add(city);
}
另一个问题更新:
当用户添加另一个字母时,如何更新我的ListBox结果,例如(“Ja”)。当用户输入“Ja”时。我想更新我的ListBox来做与上面问题相同的事情(随机挑选几个接近“Ja”的结果)
谢谢,万辉。
答案 0 :(得分:0)
也许这会对你有所帮助。使用开始数据:
var list = new List<string>();
string[] names = {"Jon","Julia","Josh","Jonson","Mai","Gordon"};
var input = "Jo";
选择以“Jo”开头的2个元素
var result = list.Where(n=>n.StartsWith(input)).Take(2);
选择以“Jo”开头的2个随机元素this
var result = list.Shuffle().Where(n=>n.StartsWith(input)).Take(2);
使用this
在“Jo”中选择2个相似的元素var result = list
.Where(n=>CalcLevenshteinDistance(n.Substring(0,input.Count()),input) >= input.Count()-input.Count()*0.5)
.Take(2);