c# – 对象集合到列表<>不起作用

我有这个代码用于将CheckedListBox.Items转换为List< Item>:

List<Item> items = ChkLsBxItemsToDraw.Items as List<Item>;

这是我的物品类

public class Item
{
    public List<double> x = new List<double>();
    public List<double> y = new List<double>();
}

我将CheckedListBox.DataSource设置为List< Item>

我得到了这个错误:

Error 1 Cannot convert type ‘System.Windows.Forms.CheckedListBox.ObjectCollection‘ to ‘System.Collections.Generic.List<Drower.Item>‘ via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion

如何将CheckedListBox.Items作为List< Item> ???

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

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

List<Item> items = ...
ChkLsBxItemsToDraw.Items.AddRange(items.ToArray());

然后将它们作为列表检索回来:

List<Item> items = ChkLsBxItemsToDrawItems.Cast<Item>().ToList();
翻译自:https://stackoverflow.com/questions/8628905/object-collection-to-list-doesnt-work

转载注明原文:c# – 对象集合到列表<>不起作用