如何根据搜索的字符串过滤ListBox中的项目

我有一个包含ListBox的Windows窗体应用程序(C#),我在其中添加了一些项目(我没有使用DataSource)。 我想过滤ListBox中的项目,只显示包含我正在搜索的字符串的项目。

我这样做是通过保留原始项目列表并在每次搜索字符串更改和更新ListBox.Items时从该列表中选择匹配项目

有更优雅/有效的方法吗?

有更优雅/更有效的方式吗?

不,不是真的。

您可以通过BindingSource连接并具有Filter和Sort属性,但这对于简单的List <>不起作用。 所以你必须使用像DataTable这样的东西,这不会是一个改进。

您当前的方法似乎很好,特别是如果您可以使用LINQ过滤列表。

但我希望你不是每次都循环使用Items属性,只需将过滤后的列表分配给Listbox1.DataSource即可。

这是一篇可能与您的问题相关的post,即使它已经全部回答了。

过滤列表框