C# - работа со списком, ОШИБКА

nail2501

Client
Регистрация
19.04.2015
Сообщения
435
Благодарностей
35
Баллы
28
Перенос из одного списка в другой

перенос из одного списка в другой:
var list_yES = project.Lists["yES"];
var list_temp = project.Lists["temp"];
int s = list_yES.Count;
for (int i=0; i<=s; i++)
{
list_temp[i]=list_yES[i];
}
НЕ ПАШЕТ.
Выполнение действия CSharp OwnCode: ТЕСТИРУЕМ. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

Подскажите пожалуйста где ошибка?
 
Последнее редактирование:

nail2501

Client
Регистрация
19.04.2015
Сообщения
435
Благодарностей
35
Баллы
28
хах вот так сработало

C#:
var list_yES = project.Lists["yES"];
var list_temp = project.Lists["temp"];
int s = list_yES.Count;
for (int i=0; i<=s; i++)
{
var temp = list_yES[i];
list_temp.Add(temp);
}
почему не работает первый вариант так и не понял.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Перенос из одного списка в другой

перенос из одного списка в другой:
var list_yES = project.Lists["yES"];
var list_temp = project.Lists["temp"];
int s = list_yES.Count;
for (int i=0; i<=s; i++)
{
list_temp[i]=list_yES[i];
}
НЕ ПАШЕТ.
Выполнение действия CSharp OwnCode: ТЕСТИРУЕМ. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

Подскажите пожалуйста где ошибка?
наверно потому что во второй список еще не успели завезти строки, а ты в несуществующие записи пытаешься записать данные. строки сначала добавляются .Add и только потом к ним можно обратиться.
 
  • Спасибо
Реакции: BAZAg

Besedi

Client
Регистрация
04.03.2019
Сообщения
234
Благодарностей
40
Баллы
28
наверно потому что во второй список еще не успели завезти строки, а ты в несуществующие записи пытаешься записать данные. строки сначала добавляются .Add и только потом к ним можно обратиться.
а разве список уже не существует, а новая переменная только служит ссылкой на участок памяти с данными списка?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
а разве список уже не существует, а новая переменная только служит ссылкой на участок памяти с данными списка?
завтра я добавлю 1к строк в список, внимание вопрос. Сколько сегодня надо выделить памяти под список с одной строкой ?
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 765
Благодарностей
2 407
Баллы
113
Перенос из одного списка в другой

перенос из одного списка в другой:
var list_yES = project.Lists["yES"];
var list_temp = project.Lists["temp"];
int s = list_yES.Count;
for (int i=0; i<=s; i++)
{
list_temp[i]=list_yES[i];
}
НЕ ПАШЕТ.
Выполнение действия CSharp OwnCode: ТЕСТИРУЕМ. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

Подскажите пожалуйста где ошибка?
Проблема в том, что в одном списке меньше строк чем в другом.


хах вот так сработало

C#:
var list_yES = project.Lists["yES"];
var list_temp = project.Lists["temp"];
int s = list_yES.Count;
for (int i=0; i<=s; i++)
{
var temp = list_yES[i];
list_temp.Add(temp);
}
почему не работает первый вариант так и не понял.
Вы этим кодом делаете не то действие, которое делали в первом случае. Раньше Вы пытались заменить строчку в списке на другую, а в этот раз - просто добавляете новую строку в список.

а разве список уже не существует, а новая переменная только служит ссылкой на участок памяти с данными списка?
Ну так человек имел допустим два файла с данынми.
В одном 10 строк, в другом 100 строк.
И человек решил в первом списке заменить например 50-ю строку - но её ещё нет - это и привело к ошибке.
Вы говорите, что вот список создан и тп - так файл с моем примере также создан, но это не значит, что там есть та строка, которую я собрался заменить.
Прежде чем что-то заменять - нужно убедиться что строка существует.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)