score:313

Accepted answer

All you need to do is introduce some brackets so that your anonymous method can support multiple lines:

list.ForEach(i => { i.a = "hello!"; i.b = 99; });

score:4

list.ForEach(i => i.DoStuff());
public void DoStuff(this foo lambda)
{
  lambda.a="hello!"; 
  lambda.b=99;
}

score:4

Honestly, there's really no need to use List.ForEach here:

foreach (var item in list) { item.a="hello!"; item.b=99; }

score:14

list.ForEach(lamba=>lambda.a="hello!"); 

Becomes

list.ForEach(item=>{
     item.a = "hello!";
     item.b = 99;
});

Of course you can also assign them when you create the list like :

var list = new List<foo>(new []{new foo(){a="hello!",b=99}, new foo(){a="hello2",b=88}}); 

score:52

Anonymous method is your friend

list.ForEach(item => 
              { 
                  item.a = "hello!"; 
                  item.b = 99; 
              }); 

MSDN:


Related Query

More Query from same tag