LINQ to CheckBoxList 数据项
Posted
技术标签:
【中文标题】LINQ to CheckBoxList 数据项【英文标题】:LINQ to CheckBoxList data items 【发布时间】:2012-02-10 21:36:58 【问题描述】:我正在使用 LINQ 从 CheckBoxList 控件中检索已检查的项目:
这里是 LINQ:
IEnumerable<int> allChecked = (from ListItem item in CheckBoxList1.Items
where item.Selected
select int.Parse(item.Value));
我的问题是为什么 item 必须是 ListItem 类型?
【问题讨论】:
【参考方案1】: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】:我的问题是为什么 item 必须是 ListItem 类型?
因为CheckBoxList1.Items
是一个ObjectCollection,其成员为ListItem
s。这就是您的 linq 查询所针对的。
【讨论】:
【参考方案3】:为什么项目必须是 ListItem 类型?
我认为是因为CheckBoxList
继承自ListControl
而Items
属性继承自ListControl
【讨论】:
以上是关于LINQ to CheckBoxList 数据项的主要内容,如果未能解决你的问题,请参考以下文章