Эта строка:
myArgus.Add(new ArrayList().Add(line));
добавляет 0
в качестве первого элемента к myArgus
. Зачем? Поскольку возвращаемое значение ArrayList.Add определяется следующим образом:
Возвращаемое значение
Тип: System.Int32
Индекс ArrayList, к которому добавлено значение.
Поскольку ваш new ArrayList()
не содержит никаких элементов, line
добавляется в индекс 0
.
Что вы, вероятно, хотели написать было:
var subList = new ArrayList();
subList.Add(line);
myArgus.Add(subList);
На самом деле следует *1026* использовать напечатанных списков:
List<List<string>> myArgus;
Это помогает отследить такого рода ошибки, потому что компилятор жалуется, если вместо ожидаемого List<string>
.
добавляется
int
.