Простите, что запостил сюда, но думаю, C# и C++ похожи, а так в болтовне зафлудят всё.
Итак, весь вопрос вот в чем: Как проиндексировать связной список в C#?
У меня в цикле идет проверка всех элементов в списке, и у того, что имеет значение жизни равным 0 - удаляется. Все бы ничего, но компилятор сразу же ругается, что мол, список модифицирован, дальнейшие действия не могут быть произведены. Мне нужно его "рефрешить" что ли, вот только как?
Код такой (все довольно просто):
Сначала создаю связной список (статический он для того, что бы я смог добавлять в него элементы с любой части кода
)
static LinkedList<Bullet> Bulllist = new LinkedList<Bullet> ( );
Потом в классе делаю private - переменную:
В Методе Update она декрементируется:
public void Update ( )
{
x += xspeed;
y += yspeed;
alpha -= 0.01f;
if ( alpha <= 0 ) Bulllist.Remove ( this );
}
И сообственно, последнее условие и есть то, из-за чего все проблемы
Далее в игровом цикле есть вот такое выражение:
foreach ( Bullet i in Bulllist ) { i.Update ( );}
- именно сюда и ругается компилятор. *Ругается, если alpha у i равна 0.