从Checkboxlist获取所有值

时间:2015-02-10 03:15:07

标签: c# .net linq

我有一个包含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();

2 个答案:

答案 0 :(得分:1)

如果您希望始终返回与原始Items集合中相同数量的项目,但将所选项目投影到其值以及将未选中的项目投影到null,则此类内容应该有效:< / p>

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

答案 1 :(得分:0)

我们也可以使用替代语法+两个序列之间的连接

  1. IEnumerable selectedItems = ceCheckBoxList.Items.Cast()。Where(item =&gt; item.Selected).Select(item =&gt; new String(item.Value.toCharArray( )));

  2. 对item使用否定项。在Where子句中选择布尔表达式,并在两个序列之间使用Concat。