Re: generic List<>

Peter Ritchie <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.cx
Message-ID <LISTSERV%[email protected]>
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
>>
>
>===================================
>This list is hosted by DevelopMentor®  http://www.develop.com
>
>View archives and manage your subscription(s) at
http://discuss.develop.com

You're on

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.