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
aList [0].Add ("value");

位置 0 に値を追加するリストがないため、これは失敗します。

試す

aList [0] = new List<string>;
aList [0].Add ("value");
于 2016-01-03T18:52:03.447 に答える
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 に答える