无法将复选框列表.项强制转换为列表项 - 找不到类型或命名空间

本文关键字:列表 找不到 类型 命名空间 复选框 转换 | 更新日期: 2023-09-27 18:32:19

我想将CheckedListBox的选定值连接到单个逗号分隔的字符串并将其存储到数据库中,但是此代码给了我一个错误:

var items = from member in checkedListBox1.Items.Cast<ListItem>()
            where member.Selected == true
            select member.Value;
string mylist = String.Join(",", items);

错误:

找不到类型或命名空间名称"ListItem"(是否缺少 using 指令或程序集引用?

无法将复选框列表.项强制转换为列表项 - 找不到类型或命名空间

您正在混合平台。 CheckedListBox 是 WinForms 控件,但ListItem是 Web 控件。

这就是它显示该错误的原因 - 您没有引用System.Web并且文件顶部没有using System.Web.UI.WebControls;。即使你拥有所有这些,无论如何这都不是正确的做法。


CheckedListBox控件已为您跟踪选中和选定的项目。

若要检索选中的项目,请使用 CheckedItems 并将集合转换回最初填充的数据类型:

var checkedItems = checkedListBox1.CheckedItems.Cast<YourClass>();

如果您确实想要选定的项目(可能不是),请改用SelectedItems

var selectedItems = checkedListBox1.SelectedItems.Cast<YourClass>();

正确转换项目后,您拥有的最后一部分应该可以正常工作(假设它是字符串的集合,或者,如果您使用自己的类,它会覆盖ToString()):

string myFlattenedList = String.Join(",", checkedItems);