将对象添加到空列表

时间:2016-06-14 17:05:35

标签: c#

我是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));

由于 null 错误,这不起作用。

现在我有这样的解决办法:

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) }};

但是,这会给我非空列表。

2 个答案:

答案 0 :(得分:3)

初始化列表数组时,还需要创建空列表 像:

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>();
}

答案 1 :(得分:2)

您的第一个代码失败的原因是您必须实例化listChannel[1],然后您只能调用实例方法,如:

listChannel[1] = new List<objChannel>();
listChannel[1].Add(new objChannel(1));

要注意的另一点是数组索引以0开头,而不是1(虽然不确定问题中的用法是否是故意的)