【发布时间】:2013-04-16 03:11:36
【问题描述】:
请参阅我有一个包含多个值的 HashSet,这些值可以包含例如 4141234567、4241234567、4261234567 等数字。我在我的 UserControl 中放了一个 radioButton1,当我单击它时,我希望只有 414 和 424 的数字保留在我的 ListBox 中,为此我编写了以下代码:
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
var bdHashSet = new HashSet<string>(bd);
if (openFileDialog1.FileName.ToString() != "")
{
foreach (var item in bdHashSet)
{
if (item.Substring(1, 3) != "414" || item.Substring(1, 3) != "424")
{
listBox1.Items.Remove(item);
}
}
}
}
但是当我运行代码时,我得到了这个错误:
设置 DataSource 属性时无法修改项目集合。
从列表中删除不需要的项目而不从 HashSet 中删除它们的正确方法是什么?我稍后会为以 0416 和 0426 开头的数字添加一个 optionButton 以及一个 optionButton 来用原始值填充 listBox ,有什么建议吗?
【问题讨论】:
-
您可以删除分配给
DataSource的对象中的项目,而不是删除ListBox中的项目,并调用该对象的Bind()方法。 -
@lexeRoy 我不是 C# 专家,所以我需要你的帮助,你能不能写一小段代码让我明白它应该是怎样的问
-
在下面查看我的答案。不会有删除项,因为我们正在创建新的
HashSet复制一个名为bd的私有对象并选择我们要应用的过滤器。
标签: c# listbox listboxitem