Hm, yes.
Thanks for the input, though.
"Jon Skeet [C# MVP]" wrote:
> Paul Prewett <link9@community.nospam> wrote:
> > I have a situation where I'd like to use a lambda, but I'm not sure how.
> > Basically, I have a collection of objects and I want to set a property on
> > each object that meets a condition.
> >
> > Right now, I have this:
> >
> > IEnumerable<VariableCode> codes =
> > variable.VariableCodeList.Where(c => c.Type == "MyCondition");
> > foreach (VariableCode code in codes)
> > {
> > code.IsShown = true;
> > }//foreach
> >
> > I'm thinking that I can replace the foreach bit with a single lambda
> > expression. Can anyone help me with that syntax?
>
> Well, if you use List<T> instead, you can use List.ForEach.
>
> Alternatively, you could (somewhat evilly) do:
>
> var codes = from variable.VariableCodeList
> where c.Type=="MyCondition"
> select { c.IsShown=true; return c; } ;
>
> (In other words, make the change part of the projection.)
>
> Or you could write a ForEach extension method yourself - it would be
> trivial to do.
>
> --
> Jon Skeet - <skeet@pobox.com>
>
http://www.pobox.com/~skeet Blog:
http://www.msmvps.com/jon.skeet > World class .NET training in the UK:
http://iterativetraining.co.uk