Я действительно не знаю, почему цикл for только петли один раз. Я думаю, что логика правильная, ниже - код.C# почему List.Remove() прерывает 'for loop'?
// the list is named 'dataList'
for(int i = 0 ; i < dataList.Count; i ++)
{
string[] data = dataList[i].Split('+');
string[] wsno = data[0].Split(':');
if(wsno[1].Equals(tbWorkSheet.Text))
{
dataList.Remove(dataList[i]) <<<< remove string that has the same number
//data removed
//for loop ends up here idk why..
}
}
dataList.Count будет размером с список.
дело такое. Я хочу удалить несколько строк, хранящихся в списке, каждая строка имеет свой номер группы. Итак, цикл for будет зацикливаться до последнего. но когда он найдет строку с тем же номером с нужной, она выполнит оператор if, который должен удалить его.
'dataList.Count' является то, что значение конкретно? – Arran
Сколько раз вы ожидаете его цикла? Выбрасывает исключение? –
Как правило, вы выполняете итерацию в обратном направлении при удалении (то есть от count-1 до 0) ... это упрощает управление индексами. – spender