C# 有没有办法将对象从列表框添加到列表中?

C# 有没有办法将对象从列表框添加到列表中?,c#,windows-forms-designer,C#,Windows Forms Designer,我正在尝试将列表框中的对象添加到列表中 下面的代码是我如何尝试的,但是当我尝试在列表中添加变量时,它会抛出一个Null异常 名单的标题是游戏 游戏是一个自定义类 foreach(var item in collectionListBox.Items) { games.Add(item as Game); } 这是一个NullReferenceException,列表框从列表中填充了foreach(游戏中的游戏g){collectionLi

我正在尝试将列表框中的对象添加到列表中

下面的代码是我如何尝试的,但是当我尝试在列表中添加变量时,它会抛出一个Null异常

名单的标题是游戏

游戏是一个自定义类

foreach(var item in collectionListBox.Items)
        {
            games.Add(item as Game);
        }

这是一个NullReferenceException,列表框从列表中填充了foreach(游戏中的游戏g){collectionListBox.Items.Add(g.ToString());}

因为您是这样添加的,所以您的列表框中有一堆
字符串
s,因为您是使用
Add(g.ToString())
添加它们的。然后,当您将它们拉出时,您有下面的代码,其中您正在遍历列表框中的项目,然后调用
项目作为游戏
,但是
项目
是一个
字符串
,因此这是不可能的:

foreach(var item in collectionListBox.Items)
{            
    games.Add(item as Game);
}
您必须这样做:

foreach(var item in collectionListBox.Items)
{            
    games.Add(item.ToString());
}

使用Listview并使用objects标记属性将Listview中的对象添加到列表中更容易。

异常的详细信息是什么?项目是如何添加到列表框的?这是一个NullReferenceException,列表框是从列表中填充的,其中包含一个foreach(游戏中的游戏g){collectionListBox.items.Add(g.ToString());}您最初是如何填充列表框的?看起来,
项目
无法转换为游戏对象。我刚刚用collectionListBox.Items.Add(Games.ToString())更改了添加到列表框的方式;老实说,我试图在从列表框中列表的排序版本中删除一个对象后更新列表。我得到错误读取无法从字符串转换为对象。您从哪里得到该错误?代码中的行号是在答案中还是在其他位置?行号错误是针对包含games.Add(item.ToString())的行的;这是不可能的:
字符串
始终可以转换为
对象
。我认为你误读了错误。你在
游戏中保留了什么样的项目
?实际上我已经决定从列表框切换到列表视图,这样做似乎更容易实现我想要实现的目标。