2011-06-22 27 views
0

如果没有选中组框中的任何复选框,我只需要一个警告。这是我使用的是什么现在:在检查一组控件时减少变量的使用

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

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

而无需创建一个一次性使用的变量(isChecked),有没有这样做我想要的东西的一种方式?

回答

2

你可以这样做:

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

这也将第一个“真正的”价值短路,与您的休息。

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

+0

哦!这可能吗? –

2

喜欢的东西:

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

任何将打破尽快,因为它由被检查的类型CheckBox的找到匹配任何该组中的控件。

+0

如果有任何检查框没有显示警告,我认为他希望在没有检查框时显示警告。 –

+0

需要一个!在一开始,否则它的作品 – Andrew

+0

你是对的,我错过了否定。现在编辑。 – DaveShaw