Re: Newbie - delete item from collection

"Hewitt, Simon C. (Contractor)" <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.advanced
Message-ID <A645D48BCCCDE241958AA3D84D34163B9234A3@BP1XEUEX029-C.bp1.ad.bp.com>
That's true for Arrays as the compiler 'knows' that .Length won't change
during the enumeration. 
Everything else will have its Count re-evaluated during each loop.

Cheers
Simon 

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[email protected]] On Behalf Of Geoff Taylor
Sent: 18 November 2008 10:20
To: [email protected]
Subject: Re: [ADVANCED-DOTNET] Newbie - delete item from collection

I know it's a property.  Tsk. ;)

My confusion was around it being whether it was invoked in the loop at
all.
I was under the impression - I'm sure I read this somewhere back in the
.NET 1.0 or beta days - that a for loop like:

for (int i = 0; i < list.Count; i++)
{
    ...
}

Was created in the IL as:

int temp = list.Count;
for (int i = 0; i < temp; i++)
{
    ...
}

See what I mean now?

I can't find any reference to this behaviour though, and I've just read
the relevant parts of the C# Language Specification and it's not there.
I even wrote it a simple program in Snippet Compiler to check.  So it
looks like my understanding was hogswash.  Sorry about that.

Apologies for introducing confusion.  Now, any idea where I got that
notion?

Cheers,

			Geoff

> -----Original Message-----
> From: Discussion of advanced .NET topics. [mailto:ADVANCED- 
> [email protected]] On Behalf Of Eddie Lascu
> Sent: 17 November 2008 22:23
> To: [email protected]
> Subject: Re: [ADVANCED-DOTNET] Newbie - delete item from collection
> 
> Count is a property that returns the actual number of elements 
> contained in the ArrayList so has to be reevaluated every time is 
> invoked.
> 
> -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[email protected]] On Behalf Of Geoff 
> Taylor
> Sent: Monday, November 17, 2008 5:06 PM
> To: [email protected]
> Subject: Re: [ADVANCED-DOTNET] Newbie - delete item from collection
> 
> Really? I thought that was cached before the first iteration of the 
> loop and not re-evaluated. Does it really evaluated Count each time 
> through the loop?
> 
>      Geoff
> 
> On 17 Nov 2008, at 21:04, Chris Anderson <[email protected]> wrote:
> 
> >> (I'd also have expected it to throw an exception towards the end, 
> >> because there are no longer _someList.Count items in the list.)
> >
> > Yes there are ;-)
> > _someList.Count will be decrementing as you remove items
> >
> > ===================================
> > View archives and manage your subscription(s) at 
> > http://peach.ease.lsoft.com/archives
> 
> ===================================
> View archives and manage your subscription(s) at 
> http://peach.ease.lsoft.com/archives
> 
> ===================================
> View archives and manage your subscription(s) at 
> http://peach.ease.lsoft.com/archives

===================================
View archives and manage your subscription(s) at
http://peach.ease.lsoft.com/archives

===================================
View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives
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.