LINQ to CheckBoxList数据项

时间:2012-01-15 17:17:25

标签: c# linq checkboxlist

我使用LINQ从CheckBoxList控件中检索已检查的项目:

LINQ:

    IEnumerable<int> allChecked = (from ListItem item in CheckBoxList1.Items
                                       where item.Selected 
                                       select int.Parse(item.Value));

我的问题是为什么item必须是ListItem类型?

3 个答案:

答案 0 :(得分:4)

  

我的问题是为什么item必须是ListItem类型?

因为CheckBoxList1.ItemsObjectCollection,其成员为ListItem s。这就是你的linq查询所反对的。

答案 1 :(得分:4)

CheckedListBox是在引入泛型之前创建的,因此Items集合返回的是对象而不是强类型的ListItem。幸运的是,使用OfType()(或Cast)方法使用LINQ修复它是相对容易的:

IEnumerable<int> allChecked = (from ListItem item in CheckBoxList1.Items.OfType<ListItem>()
                                   where item.Selected  
                                   select int.Parse(item.Value)); 

答案 2 :(得分:1)

  

为什么item必须是ListItem类型?

我认为因为CheckBoxList继承自ListControlItems属性继承自ListControl