我有一个包含13个字符串的数组,其中我从checkboxlist中提取字符串值。我可以使用下面的代码提取所选的值。但是我想将未经检查的值拉为null。因此,如果我选择12个值,则数组中的1将为null。
我不确定数组是否动态添加所选值,或者代码是否使用null填充取消选中的值。请帮忙。谢谢。
string[] selectedAreaValues = new string[13];
IEnumerable<string> allChecked = (from item in ceCheckBoxList.Items.Cast<ListItem>()
where item.Selected
select item.Value);
selectedAreaValues = allChecked.ToArray();
答案 0 :(得分:1)
如果您希望始终返回与原始Items
集合中相同数量的项目,但将所选项目投影到其值以及将未选中的项目投影到null
,则此类内容应该有效:< / p>
IEnumerable<string> allChecked = (from item in ceCheckBoxList.Items.Cast<ListItem>()
select item.Selected ? item.Value : (string)null);
答案 1 :(得分:0)
我们也可以使用替代语法+两个序列之间的连接
IEnumerable selectedItems = ceCheckBoxList.Items.Cast()。Where(item =&gt; item.Selected).Select(item =&gt; new String(item.Value.toCharArray( )));
对item使用否定项。在Where子句中选择布尔表达式,并在两个序列之间使用Concat。