【发布时间】:2019-05-17 12:46:46
【问题描述】:
我有一个包含ListBox 和Combobox 的winform。在此ListBox 中,首次运行时会出现一个客户列表。
我想用Combobox 过滤ListBox 中的“客户”。
使用Combobox 中选择的字符串填充ListBox 我正在使用:
private void FillListBox()
{
this.lstClient.Items.Clear();
foreach (Client c in this.client)
{
if (this.cBox.Text == "All")
this.lstClient.Items.Add(c.ToString());
else
if (this.cBox.Text == "Retail" && c.GetType() == typeof(RetailClient))
this.lstClient.Items.Add(c.ToString());
}
this.lstClient.Sorted = true;
}
之后我从 ComboBox 的事件中调用此方法:
private void cBox_TextChanged(object sender, EventArgs e)
{
this.FillListBox();
}
它工作“很棒”,但我的代码不是真正动态的而且太长(很多不同的客户端),这就是我想使用 LINQ 的原因。 我阅读了 microsoft 的文档,但我对如何使用它感到很困惑。
有人有时间给我指路吗?
添加信息:
我的表格:
我在 ComboBox 中选择我想要的类型:
结果:
谢谢
【问题讨论】:
-
我不确定我是否了解您如何过滤您的列表。你能举个图形例子吗?
-
什么是
this.client?为什么需要使用GetType()来确定type?是偶然的List<object>吗?您可以使用简单的 LINQ 查询设置ListBox.DataSource过滤源列表。 -
是的 this.client 是一个 List
,其中 client 是一个类。我使用“类型”是因为在我的 List 中有多种客户(零售、批发、...) -
你能发布你的
Client类吗?