我从其中一个帖子中获得了以下代码,它是组合框的自动完成功能。问题是如果我有一个大阵列,搜索似乎是滞后的。有没有人有更好的解决方案?谢谢......
P.S。这是我的第一篇文章,所以请温柔地对待我:)
private void comboBox1_TextChanged(object sender, EventArgs e)
{
string item = comboBox1.Text;
item = item.ToLower();
comboBox1.Items.Clear();
List<string> list = new List<string>();
for (int i = 0; i < vocFiles.Length; i++)
{
if (vocFiles[i].ToLower().Contains(item))
list.Add(vocFiles[i]);
}
if (item != String.Empty)
foreach (string str in list)
comboBox1.Items.Add(str);
else
comboBox1.Items.AddRange(vocFiles);
comboBox1.SelectionStart = item.Length;
comboBox1.DroppedDown = true;
}
}
答案 0 :(得分:2)
尝试以下内容,而不是逐个循环浏览每个项目。
List<string> myList = vocFiles.Where (v => v.ToLower().Contains(item)).ToList();