2011-06-22 57 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