2015-02-10 2 views
1

У меня есть массив из 13 строк, в которые я вывожу значения строки из checkboxlist. Я могу вытащить значения, которые выбраны с помощью кода ниже. Однако я хочу также вывести непроверенные значения как null. Поэтому, если я выберу 12 значений, тогда 1 будет иметь нулевое значение в массиве.Получение всех значений из Checkboxlist

Я не уверен, что массив динамически добавляет выбранные значения или код заполняет галочкой значения с нулевым значением. Пожалуйста, помогите.Спасибо.

string[] selectedAreaValues = new string[13]; 

IEnumerable<string> allChecked = (from item in ceCheckBoxList.Items.Cast<ListItem>() 
            where item.Selected 
            select item.Value); 

selectedAreaValues = allChecked.ToArray(); 

ответ

1

Если вы хотите, чтобы всегда возвращать одинаковое количество элементов, как и в оригинальной Items коллекции, но проект выбранные элементы в их стоимости и невыбранных элементов в null, то что-то, как это должно работать:

IEnumerable<string> allChecked = (from item in ceCheckBoxList.Items.Cast<ListItem>() 
            select item.Selected ? item.Value : (string)null); 
+0

Это гений. Условный оператор. О чем я только думал. Спасибо. –

0

Мы также можем использовать альтернативный syntaxe + A CONCAT между двумя последовательностями

  1. IEnumerable selectedItems = ceCheckBoxList.Items.Cast(). Где (item => item.Selected). Выберите (item => new String (item.Value.toCharArray()));

  2. Использование отрицания с помощью item.Selected boolean expression в предложении Where и использование Concat между двумя последовательностями.

Смежные вопросы