Не удаляются все строки

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

proffman

Client
Регистрация
24.01.2013
Сообщения
547
Реакции
51
Баллы
28
Пробовал даже лочить, все равно не все строки удаляются...
Список привязан к файлу, пробовал даже таймер ставить все равно 0 эффекта..
Код:
Развернуть Свернуть Копировать
                lock(SyncObjects.ListSyncer)
                {
                    for(int i = 0; i < project.Lists["list"].Count; i++)
                    {
                        project.Lists["list"].RemoveAt(0);
                    }
                }
А что с RemoveAll, пробовал ставить так project.Lists["list"].RemoveAll(); вылетает в лог ошибка..
 
Последнее редактирование:
Если сразу отчистить то, можно так:

Код:
Развернуть Свернуть Копировать
project.Lists["list"].Clear();
 
  • Оценить
Реакции: proffman
Однако, волнует вопрос на будущее, почему так себя ведет код с циклом for. Вопрос к знатока :dy:
Так, на будущее пригодится может :-)
 
Я не знаток языка, самому интересно. Удаляет все нечетные индексы. Хрен проссыш в чем тут дело. Надо спецов ждать, пусть они ответят.
 
Добавляем в код

Код:
Развернуть Свернуть Копировать
lock(SyncObjects.ListSyncer)
    {
        for(int i = 0; i < project.Lists["list"].Count; i++)
        {
            project.Lists["list"].RemoveAt(0);
            project.SendInfoToLog("i = " + i.ToString());
            project.SendInfoToLog("count = " + project.Lists["list"].Count.ToString());
        }
    }
И при списке в 8 элементов видим в логе:

12:29:29 i = 0
12:29:29 count = 7

12:29:29 i = 1
12:29:29 count = 6

12:29:29 i = 2
12:29:29 count = 5

12:29:29 i = 3
12:29:29 count = 4


В цикле перменная i увеичивается, а project.Lists["list"].Count - уменьшается.
На следующей итерации, которая так и не произошла, значения такие: i = 4, count = 4, а это уже невыполение условия цикла

Если мы изменим условие на
Код:
Развернуть Свернуть Копировать
project.Lists["list"].Count != 0
то всё работает
 
  • Оценить
Реакции: aluminoter и proffman

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