Сокращение использования переменных при проверке группы элементов управления - PullRequest
0 голосов
/ 22 июня 2011

Я хочу, чтобы предупреждение только увеличивалось, если не установлен ни один из флажков внутри группового поля. Вот что я сейчас использую:

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

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

Без создания одноразовой переменной использования (isChecked), есть ли способ сделать то, что я хочу?

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Что-то вроде:

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

Любой сломается, как только найдет соответствие любому из элементов управления в группе по типу CheckBox, которые проверяются.

2 голосов
/ 22 июня 2011

Вы можете сделать:

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

Это также приведет к короткому замыканию на первом «истинном» значении, таком же, как ваш разрыв.

Редактировать: Включено приведение к типу флажка для комментария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...