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?
I suspect you're really looking for
Where
- just callingContains
in aForEach
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: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...)
Foreach
returnsvoid
that is why you are getting the error. Your statement on the right hand side of assignment is not returning anything. You can do the same in two statements like:In your current code you are creating a new
List<Form1>
and then iterating over each item in the list, but you are not returning anything.As Jon Skeet has pointed out in the comment, it will not have any effect on the list. I guess you are trying to get all the button from your list of forms you can do: