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

  • Автор темы Автор темы nail2501
  • Дата начала Дата начала

nail2501

Client
Регистрация
19.04.2015
Сообщения
513
Реакции
50
Баллы
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

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

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);
}

почему не работает первый вариант так и не понял.
 
Перенос из одного списка в другой

перенос из одного списка в другой:
Развернуть Свернуть Копировать
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
наверно потому что во второй список еще не успели завезти строки, а ты в несуществующие записи пытаешься записать данные. строки сначала добавляются .Add и только потом к ним можно обратиться.
а разве список уже не существует, а новая переменная только служит ссылкой на участок памяти с данными списка?
 
а разве список уже не существует, а новая переменная только служит ссылкой на участок памяти с данными списка?
завтра я добавлю 1к строк в список, внимание вопрос. Сколько сегодня надо выделить памяти под список с одной строкой ?
 
  • Спасибо
Реакции: BAZAg
Перенос из одного списка в другой

перенос из одного списка в другой:
Развернуть Свернуть Копировать
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-ю строку - но её ещё нет - это и привело к ошибке.
Вы говорите, что вот список создан и тп - так файл с моем примере также создан, но это не значит, что там есть та строка, которую я собрался заменить.
Прежде чем что-то заменять - нужно убедиться что строка существует.
 

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