无法将复选框列表.项强制转换为列表项 - 找不到类型或命名空间
本文关键字:列表 找不到 类型 命名空间 复选框 转换 | 更新日期: 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);