C# 如何根据搜索的字符串筛选列表框中的项目

C# 如何根据搜索的字符串筛选列表框中的项目,c#,winforms,data-binding,C#,Winforms,Data Binding,我有一个Windows窗体应用程序(C#),其中包含一个列表框,我在其中添加了一些项(我没有使用数据源)。我想过滤列表框中的项目,以仅显示包含我正在搜索的字符串的项目 为此,我保留了一个原始项目列表,每次搜索字符串更改时都从该列表中选择匹配的项目,并更新ListBox.items 有没有更优雅/高效的方法 有没有更优雅/高效的方法 不,不是真的 您可以通过BindingSource进行连接,该BindingSource具有筛选器和排序属性,但这对于简单的列表不起作用。因此,您必须使用类似Data

我有一个Windows窗体应用程序(C#),其中包含一个列表框,我在其中添加了一些项(我没有使用数据源)。我想过滤列表框中的项目,以仅显示包含我正在搜索的字符串的项目

为此,我保留了一个原始项目列表,每次搜索字符串更改时都从该列表中选择匹配的项目,并更新ListBox.items

有没有更优雅/高效的方法

有没有更优雅/高效的方法

不,不是真的

您可以通过BindingSource进行连接,该BindingSource具有筛选器和排序属性,但这对于简单的列表不起作用。因此,您必须使用类似DataTable的东西,而这并不是一种改进

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

但我希望您不要每次都循环使用Items属性,只需将筛选列表分配给Listbox1.DataSource即可

有没有更优雅/高效的方法

不,不是真的

您可以通过BindingSource进行连接,该BindingSource具有筛选器和排序属性,但这对于简单的列表不起作用。因此,您必须使用类似DataTable的东西,而这并不是一种改进

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


但我希望您不要每次都循环使用Items属性,只需将筛选列表分配给Listbox1.DataSource即可。

这里有一篇文章可能与您的问题相关,尽管它已经回答完毕


这里有一篇帖子可能与你的问题有关,尽管它已经得到了很好的回答