Cannot assign void to an implicitly typed local variable with var and foreach

I'm trying to list all buttons name from my form to list with code

var v = new List<Form1>() { this }.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); });

and always get error

Cannot assign void to an implicitly-typed local variable

How to bypass that?

Jon Skeet
people
quotationmark

I suspect you're really looking for Where - just calling Contains in a ForEach call isn't going to do anything for you. Likewise I don't think you're really looking for a list of forms if you're interested in buttons. I suspect you may be looking for:

var buttons = this.Controls.OfType<Button>().ToList();

Note that this won't go into nested controls - if you need to do that, you'll need something recursive. (You may well be able to find other questions asking for that... it doesn't help that we don't know whether this is WinForms, WebForms, something else...)

people

See more on this question at Stackoverflow