Почему код ниже не очищает все данные списка массивов?Очистить все данные списка массивов
Console.WriteLine("Before cleaning:" + Convert.ToString(ID.Count));
//ID.Count = 20
for (int i = 0; i < ID.Count; i++)
{
ID.RemoveAt(i);
}
Console.WriteLine("After cleaning:" + Convert.ToString(ID.Count));
//ID.Count = 10
Почему 10 напечатано на экране?
Возможно, есть еще одна специальная функция, которая удаляет все?
В первый раз через цикл вы удаляете элемент в позиции 0.В списке теперь 19 элементов, позиция в позиции 1 теперь перемещается в нулевое положение, 2 -> 1, 3-> 2 и т. Д. Во второй раз через цикл вы удаляете элемент в позиции 1 (это раньше было пунктом 2). Вы пропустили элемент в позиции 0 (это был элемент 1). Таким образом вы удаляете каждый второй элемент из списка. –