Tag: string search

在string集合中search最快的方法

问题: 我有一个约12万个用户(string)的文本文件,我想存储在一个集合中,然后在该集合上执行search。 每次用户更改文本TextBox的文本时都会发生search方法,并且结果应该是包含 TextBox本的string。 我不必更改列表,只需将结果ListBox到列表框中即可。 我到目前为止所尝试的是: 我尝试了两个不同的集合/容器,我从一个外部文本文件(当然是一次)转储string条目: List<string> allUsers; HashSet<string> allUsers; 通过以下的LINQ查询: allUsers.Where(item => item.Contains(textBox_search.Text)).ToList(); 我的search事件(用户更改search文本时触发): private void textBox_search_TextChanged(object sender, EventArgs e) { if (textBox_search.Text.Length > 2) { listBox_choices.DataSource = allUsers.Where(item => item.Contains(textBox_search.Text)).ToList(); } else { listBox_choices.DataSource = null; } } 结果: 两者都给了我一个很差的响应时间(每个按键之间大约1-3秒)。 题: 你认为我的瓶颈在哪里? 我用过的集合? search方法? 都? 我怎样才能获得更好的性能和更stream畅的function?