更快地搜索组合框自动完成功能

时间:2014-03-26 13:59:27

标签: c#

我从其中一个帖子中获得了以下代码,它是组合框的自动完成功能。问题是如果我有一个大阵列,搜索似乎是滞后的。有没有人有更好的解决方案?谢谢......

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;
        }
    }

1 个答案:

答案 0 :(得分:2)

尝试以下内容,而不是逐个循环浏览每个项目。

List<string> myList = vocFiles.Where (v => v.ToLower().Contains(item)).ToList();