遍历所有未选中的复选框(foreach 或 for-loop,Windows 形式)
Loop through all unchecked Checkboxes (foreach or for-loop, Windows Forms)
我想压缩可执行代码段(见下文)。如何使用 foreach 或 for-loop 执行此操作?
private void UncheckCheckBox()
{
CheckBox[] Three = new []
{
checkBox1,
checkBox2,
checkBox3
};
checkBox1.Tag = "str1";
checkBox2.Tag = "str2";
checkBox3.Tag = "str3";
if (!checkBox1.Checked)
{
listBox4.Items.Remove(checkBox1.Tag);
}
if (!checkBox2.Checked)
{
listBox4.Items.Remove(checkBox2.Tag);
}
if (!checkBox3.Checked)
{
listBox4.Items.Remove(checkBox3.Tag);
}
}
就这么简单:
foreach(CheckBox cbx in Three)
{
if(! cbx.Checked)
listBox4.Items.Remove(cbx.Tag);
}
不用数组也可以。控件集合应该有你的复选框:
foreach (CheckBox checkBox in Controls.AsQueryable().OfType<CheckBox>().Where(c => !c.Checked).ToArray())
listBox4.Items.Remove(checkBox.Tag);
或使用您现有的阵列:
foreach (CheckBox checkBox in Three.Where(c => !c.Checked).ToArray())
listBox4.Items.Remove(checkBox.Tag);
我想压缩可执行代码段(见下文)。如何使用 foreach 或 for-loop 执行此操作?
private void UncheckCheckBox()
{
CheckBox[] Three = new []
{
checkBox1,
checkBox2,
checkBox3
};
checkBox1.Tag = "str1";
checkBox2.Tag = "str2";
checkBox3.Tag = "str3";
if (!checkBox1.Checked)
{
listBox4.Items.Remove(checkBox1.Tag);
}
if (!checkBox2.Checked)
{
listBox4.Items.Remove(checkBox2.Tag);
}
if (!checkBox3.Checked)
{
listBox4.Items.Remove(checkBox3.Tag);
}
}
就这么简单:
foreach(CheckBox cbx in Three)
{
if(! cbx.Checked)
listBox4.Items.Remove(cbx.Tag);
}
不用数组也可以。控件集合应该有你的复选框:
foreach (CheckBox checkBox in Controls.AsQueryable().OfType<CheckBox>().Where(c => !c.Checked).ToArray())
listBox4.Items.Remove(checkBox.Tag);
或使用您现有的阵列:
foreach (CheckBox checkBox in Three.Where(c => !c.Checked).ToArray())
listBox4.Items.Remove(checkBox.Tag);