Re: generic List<>
Peter Osucha <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.cx |
|---|---|
| Message-ID | <[email protected]> |
Thanks all for those additional comments. I looked at the 'RemoveAll' method - interesting but I think Peter Ritchie's comment about just not enumerating using the collected object type will be most useful for my situation. Peter > -----Original Message----- > From: Discussion relating to the specifics of the C# and > Managed C++ languages [mailto:[email protected]] > On Behalf Of Peter Ritchie > Sent: Wednesday, August 30, 2006 10:38 AM > To: [email protected] > Subject: Re: [DOTNET-CX] generic List<> > > Only removal of collection items while using the IEnumerator > interface is not supported. You can enumerate a collection > in other ways, without creating a new collection and copying > a bunch of references. > > For example: > for (int i = (myObjects.Count - 1); i >= 0; --i) { > myObjects mo = myObjects[i]; > if (mo.CanBeRemoved) > { > myObjects.Remove(mo); > } > } > > On Wed, 30 Aug 2006 16:06:31 +0200, Efran Cobisi <[email protected]> > wrote: > > >Nope. By design you are not allowed to make any changes to the > >collection you are iterating. > >The workaround for this depends on the situation. For most > scenarios, > >you could just copy the references of the objects you wish to be > >deleted in another collection and then, while iterating the latter, > >delete these objects from the former. > > > >List<myObject> myTemp = new List<myObject>(); > > > >foreach (MyObject mo in myObjects) > >{ > > if (mo.CanBeRemoved==true) > > myTemp.Add(mo); > >} > > > >foreach (MyObject mo in myTemp) > > myObjects.Remove(mo); > > > > > >HTH > > > >Efran Cobisi, cobisi.com > > > >Peter Osucha wrote: > >> I have a generic List<myObject> collection 'myObjects'. MyObject > instances > >> have a bool property 'CanBeRemoved'. > >> > >> But apparently, it is invalid to > >> > >> foreach (MyObject mo in myObjects) > >> { > >> if (mo.CanBeRemoved==true) myObjects.Remove(mo); } > >> > >> Is there a way to remove items from such collection while looping > through > >> the collection? > >> > >> Peter =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com