If I use an item in a foreach loop and I can't use the item it has to delete the item that is currently in the foreach loop.
This is the code that I have right now:
foreach (Line line in linelijst)
{
try
{
if (line.ActorIndex() == 0)
{
line.setStartPoint(actorenlijst[0].getLinePoint()); //if actorenlijst[0] doesn't excist it has to delete the current line
}
if (line.ActorIndex() == 1)
{
line.setStartPoint(actorenlijst[1].getLinePoint()); //if actorenlijst[1] doesn't excist it has to delete the current line
}
if (line.ActorIndex() == 2)
{
line.setStartPoint(actorenlijst[2].getLinePoint()); //if actorenlijst[2] doesn't excist it has to delete the current line
}
Point start = line.getStartPoint();
Point end = line.getEndPoint();
Pen lijn = new Pen(Color.Black, 1);
graphics.DrawLine(lijn, start, end);
}
catch
{
//delete current line from the list
}
}
Thanks for your interest to help other people :)
Try just creating another temporary list for the items that need to be deleted then when your done looping you can just delete the ones in the temp list.
List<Type> temp = new List<Type>()
foreach(item in mainList)
{
if (item.Delete)
{
temp.Add(item);
}
}
foreach (var item in temp)
{
mainList.Remove(item);
}
You canNOT change the listing through which you are going. It is locked because it is an Enumeration as long as it is in the foreach. So use a for-loop instead.
for (int i = linelijst.count; i > 0; i--)
{
// linelijst[i - 1] can be removed, etc.
}
or use (as the commentators suggested):
for (int i = linelijst.count - 1; i >= 0; i--)
{
// linelijst[i] can be removed, etc.
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With