0

我有一个清单:

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

我想在此列表中的列表中添加一些内容,如下所示:

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

但我明白ArgumentOutOfRangeException了,为什么?

将列表添加到列表中效果很好:

List <string> testList = new List <string> ();
testList.Add ("item");
aList.Add (testList);

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

4

4 回答 4

2

添加索引的第一条语句假定列表的大小> = 1,但事实并非如此。只是初始化不会创建一个大小的列表。

于 2016-01-03T18:51:13.130 回答
1

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

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

没有任何错误。

于 2016-01-03T18:51:51.827 回答
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);

您不能将元素添加到未声明的列表中

于 2016-01-03T20:39:31.717 回答
0
aList [0].Add ("value");

这失败了,因为位置 0 没有 List 可以添加您的值。

尝试

aList [0] = new List<string>;
aList [0].Add ("value");
于 2016-01-03T18:52:03.447 回答