J
jp2msft
I've got a ListBox on my Visual Studio C# form with several entries (14,000).
I have to put a search field on the form. As text is entered into the search
field, I want the ListBox to remove entries that do not match. Sounds simple
enough, but it is really taking a long time! I started running it before
opening my web browser, and now (with typing this message, I'm about to go
over and hit a breakpoint) it is at ... 12687 entries, and all I've entered
is one character into my filtering TextBox.
Why is my version taking so long?
What can I do to speed it up?
Code:
private void Filter(string value)
{
for (int i = ListView1.Items.Count - 1; -1 < i; i--)
{
if (ListView1.Items.SubItems[1].Text.StartsWith(value) == false)
{
ListView1.Items.Remove();
}
}
ListView1.Refresh();
}
I have to put a search field on the form. As text is entered into the search
field, I want the ListBox to remove entries that do not match. Sounds simple
enough, but it is really taking a long time! I started running it before
opening my web browser, and now (with typing this message, I'm about to go
over and hit a breakpoint) it is at ... 12687 entries, and all I've entered
is one character into my filtering TextBox.
Why is my version taking so long?
What can I do to speed it up?
Code:
private void Filter(string value)
{
for (int i = ListView1.Items.Count - 1; -1 < i; i--)
{
if (ListView1.Items.SubItems[1].Text.StartsWith(value) == false)
{
ListView1.Items.Remove();
}
}
ListView1.Refresh();
}