Memory Allocation in foreach loop

Hi all,

had a dispute with colleague about foreach syntax. In following example I use a methode to return a [color=Blue]new[/color] Collection of strings and I believe collection is only created once: --> when loop variables are initialized. My colleague is convinced the collection is [color=Blue]newed[/color] each time the loop loops. Who is right??

[code]
foreach( string s in ListDefaults.ListNames( base.mProj.StringMan, base.mProj.LicensedModules ))
{
cmbBoxListType.Items.Add( s );
}
[/code]

greets C:

Comments

  • Hi,

    I'm almsot certain you are right - the collection will be obtained first and then an iterator taken. So only one collection is created and then looped over. If you compile a simple example program and then disassemble it to IL code, it'll probably clear up what is really going on.

    Jonathan
    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

In this Discussion