Я написал функцию, чтобы пройти через список и удалять элементы списка, если выполняются некоторые условия. Моя программа врезалась в нее, и через некоторое время я пришел к выводу, что внешний цикл for, проходит через все элементы в списке. В то же время список предметов может быть короче.правильный способ петлить через список и удалять элементы
// Lijst is a list of a struct that contains a value .scanned and .price
for (int i = 0; i < Lijst.Count; i++)
{
if (Lijst[i].scanned == false)
{
// (removed deletion of list item i here)
if (Lijst[i].price > (int)nudMinimum.Value)
{
Totaal++;
lblDebug.Text = Totaal.ToString();
}
Lijst.RemoveAt(i); //<-moved to here
}
}
Теперь я задаюсь вопросом, что правильно делать, не получая индекс из ошибок диапазона.
Выполните цикл от графа до 0 –
отметить также, что 'Lijst [я]' в 'if' обращается к элементу _после_, который вы только что сняли. – CompuChip
Почему бы другое направление для цикла работать? – user3800527