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

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(); вылетает в лог ошибка..
 
Последнее редактирование:

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Если сразу отчистить то, можно так:

Код:
project.Lists["list"].Clear();
 
  • Спасибо
Реакции: proffman

proffman

Client
Регистрация
24.01.2013
Сообщения
547
Благодарностей
51
Баллы
28

proffman

Client
Регистрация
24.01.2013
Сообщения
547
Благодарностей
51
Баллы
28
Однако, волнует вопрос на будущее, почему так себя ведет код с циклом for. Вопрос к знатока :dy:
Так, на будущее пригодится может :-)
 

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Я не знаток языка, самому интересно. Удаляет все нечетные индексы. Хрен проссыш в чем тут дело. Надо спецов ждать, пусть они ответят.
 

vmc

Client
Регистрация
15.03.2015
Сообщения
72
Благодарностей
13
Баллы
8
Добавляем в код

Код:
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

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