C#将元素添加到列表中的列表(二维列表)

时间:2016-01-03 18:48:15

标签: c# list exception generics dimensional

我有一个清单:

Point controlRelativePos = new Point(arg0.x, arg0.y);

Point displayRelativePos = paintC.toDisplay(controlRelativePos);

我希望在此列表中的列表中添加一些内容:

List <List <string>> aList = new List <List <string>> ();

但我得到aList [0].Add ("pens"); ,为什么?

将列表添加到列表非常完美:

ArgumentOutOfRangeException

没有任何错误。 我做错了什么?

4 个答案:

答案 0 :(得分:2)

添加索引的第一个语句假定列表的大小为> = 1,而不是。只是初始化不会创建一个大小的列表。

答案 1 :(得分:0)

aList [0].Add ("value");

由于位置0没有列表可以将值添加到。

,因此失败

尝试

aList [0] = new List<string>;
aList [0].Add ("value");

答案 2 :(得分:0)

public class Row
{
    public  List<string> Elements { get; private set; }

    public Row()
    {
        Elements = new List<string>();
    }

    public Row(List<string> elements)
    {
        Elements = elements;
    }
}

使用:

List<Row> rows = new List<Row>();
        rows.Add(new Row( new List<string>(){"abc","abc","abc"}));
        rows.Add(new Row(new List<string>() { "xyz", "xyz", "xyz" }));

 Row row = new Row();
        row.Elements.Add("abc");
        row.Elements.Add("xyz");

       rows.Add(row);

您无法将元素添加到未设置的列表中

答案 3 :(得分:-1)

好的,我找到了解决自己问题的方法! 我必须先将自己的列表添加到自己的列表中,因为它是空的,所以我无法访问不存在的列表。

List <string> testList = new List <string> ();
aList.Add (testList);
aList [0].Add ("penis");

没有任何错误。