I'm trying to remove an item from an ArrayList and I get this Exception:Collection was modified; enumeration operation may not execute. 
Any ideas?
You are removing the item during a foreach, yes? Simply, you can't. There are a few common options here:
List<T> and RemoveAll with a predicateiterate backwards by index, removing matching items
for(int i = list.Count - 1; i >= 0; i--) {     if({some test}) list.RemoveAt(i); }  use foreach, and put matching items into a second list; now enumerate the second list and remove those items from the first (if you see what I mean)
Here's an example (sorry for any typos)
var itemsToRemove = new ArrayList();  // should use generic List if you can  foreach (var item in originalArrayList) {   if (...) {     itemsToRemove.Add(item);   } }  foreach (var item in itemsToRemove) {   originalArrayList.Remove(item); }   OR if you're using 3.5, Linq makes the first bit easier:
itemsToRemove = originalArrayList   .Where(item => ...)   .ToArray();  foreach (var item in itemsToRemove) {   originalArrayList.Remove(item); }   Replace "..." with your condition that determines if item should be removed.
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