在检查一组控件时减少变量的使用

时间:2011-06-22 14:28:08

标签: c# winforms variables

如果没有选中组框内的复选框,我只想要警告。这就是我现在正在使用的:

foreach(CheckBox i in groupBox_productType.Controls) {
    if(i.Checked){
        isChecked = true;
        break;
    }
}

if(!isChecked) { /* warning goes here */ }

如果没有创建一次性使用变量(isChecked),有没有办法做我想做的事情?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

if(!group_Box.productType.Controls.OfType<CheckBox>().Any( c => c.Checked ) )
{
...
}

这也会使第一个“真实”值短路,与您的休息时间相同。

编辑:包含强制转换为每个评论的复选框类型。

答案 1 :(得分:2)

类似的东西:

if (!groupBox_productType.Controls.OfType<CheckBox>().Any(checkBox => checkBox.Checked))
{
  //Warning goes here.
}

任何一个都会很快中断,因为它找到了匹配的CheckBox类型中任何一个控件的匹配。