2012-01-15 50 views
4

即時通訊使用LINQ從CheckBoxList控件retrive cheched項目的CheckBoxList數據項:LINQ到

這裏的LINQ:

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

我的問題是,爲什麼項目必須是列表項類型?

回答

4

引入泛型之前CheckedListBox創建繼承,因此項目集合返回的對象,而不是強類型的列表項。幸運的是,與LINQ固定,這是使用OfType()(或角色)的方法相對容易:

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

我的問題是,爲什麼項目必須是列表項類型?

因爲CheckBoxList1.ItemsObjectCollection,其成員是ListItem第這是你的LINQ查詢工作反對什麼。

1

爲什麼項目已經是列表項類型?

我想是因爲從ListControlItems財產繼承CheckBoxListListControl