Как фильтровать элементы в ListBox на основе искомой строки - PullRequest
2 голосов
/ 06 мая 2010

У меня есть приложение Windows Forms (C #), содержащее ListBox, в которое я добавил некоторые элементы (я не использую DataSource). Я хочу отфильтровать элементы в ListBox, чтобы показать только элементы, содержащие искомую строку.

Я сделал это, сохраняя список исходных элементов и выбирая соответствующие элементы из этого списка каждый раз, когда изменяется строка поиска, и обновляя ListBox.Items

Есть ли более элегантный / эффективный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Вот сообщение, которое может иметь отношение к вашему вопросу, даже если на него уже есть ответ.

Фильтрация списка

0 голосов
/ 06 мая 2010

Есть ли более элегантный / эффективный способ?

Нет, не совсем.

Вы можете подключиться через BindingSource, который имеет свойства Filter и Sort, но это не работает для простого List <>. Таким образом, вам придется использовать что-то вроде DataTable, и это не будет улучшением.

Ваш текущий метод выглядит нормально, особенно если вы можете использовать LINQ для фильтрации списка.

Но я надеюсь, что вы не перебираете свойство Items каждый раз, просто назначьте отфильтрованный список для Listbox1.DataSource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...