将对象添加到空列表
问题描述:
我是C#的新手,所以这个问题可能很简单。但是我还没有找到任何解决方案。问题的将对象添加到空列表
描述:
我想创建和空数组[4]列出的[长度不知道。稍后,我将读出四个不同的频道,并用预先创建的对象填充列表。
我做了什么至今
class objChannel
{
private int channel;
public objChannel(int inputChannel)
{
channel = inputChannel;
}
public int Channel {get {return channel;}}
}
List<objChannel>[] listChannel = new List<objChannel>[4];
listChannel[1].Add(objChannel(1));
这并不是因为空错误的工作。
现在我有一个变通这样的:
List<objChannel>[] listChannel = {new List<objChannel> { new objChannel(1) },
new List<objChannel> { new objChannel(2) },
new List<objChannel> { new objChannel(3) },
new List<objChannel> { new objChannel(4) }};
然而,这会给我非空列表。
答
当你初始化列表的数组,你需要创建空列表以及 像:
List<objChannel>[] listChannel = {new List<objChannel>(), new List<objChannel>(), new List<objChannel>(), new List<objChannel>()};
或
for(int i = 0; i<4; i++)
{
listChannel[i] = new List<objChannel>();
}
答
你的第一个代码失败的原因是因为你必须实例化listChannel[1]
,然后您只能调用实例方法,如:
listChannel[1] = new List<objChannel>();
listChannel[1].Add(new objChannel(1));
另一点需要注意的是,数组索引以0
开头,而不是1
。 (虽然不确定在问题中使用的是否是有意的)。
+0
感谢@Habib的快速回复。这样可行。现在我有以下'列表
首先你必须实例化'listChannel [1]',然后你可以调用实例方法'Add'。 – Habib
你想要一个'objChannel'的_single_容器,或者你想要'objChannel'的containers_容器_容器? –