列表<>的对象集合不起作用

ahm*_*iee 9 .net c# c#-4.0

我有这个代码用于转换CheckedListBox.ItemsList<Item>:

List<Item> items = ChkLsBxItemsToDraw.Items as List<Item>;
Run Code Online (Sandbox Code Playgroud)

这是我的Item班级

public class Item
{
    public List<double> x = new List<double>();
    public List<double> y = new List<double>();
}
Run Code Online (Sandbox Code Playgroud)

我开始CheckedListBox.DataSourceList<Item>

我得到了这个错误:

错误1无法通过引用转换,装箱转换,取消装箱转换,换行转换或空类型转换将类型' System.Windows.Forms.CheckedListBox.ObjectCollection' 转换为' System.Collections.Generic.List<Drower.Item>'

我如何获得CheckedListBox.ItemsList<Item>???

Dar*_*rov 16

数据源项目性质无关.您设置第一个属性的事实并不意味着您将在第二个属性中获得任何内容.例如,如果您检查项目数将为0 : ChkLsBxItemsToDraw.Items.Count.

您可以向Items属性添加元素:

List<Item> items = ...
ChkLsBxItemsToDraw.Items.AddRange(items.ToArray());
Run Code Online (Sandbox Code Playgroud)

然后将它们作为列表返回:

List<Item> items = ChkLsBxItemsToDrawItems.Cast<Item>().ToList();
Run Code Online (Sandbox Code Playgroud)


小智 6

List<Item> items = this.ChkLsBxItemsToDraw.Items.Cast<Item>().ToList();
Run Code Online (Sandbox Code Playgroud)