Si encuentras alguna incompatibilidad con tu código o trabajo, recuerda probar siempre en un entorno de testing antes añadir el código al trabajo final.
Solución:
Foreach
devoluciones void
es por eso que está recibiendo el error. Su declaración en el lado derecho de la asignación no está devolviendo nada. Puede hacer lo mismo en dos declaraciones como:
var v = new List() this ;
v.ForEach(x => x.GetType().Name.Contains(typeof(Button).Name); );
En su código actual está creando un nuevo List
y luego itera sobre cada elemento de la lista, pero no devuelve nada.
Como ha señalado Jon Skeet en el comentario, no tendrá ningún efecto en la lista. Supongo que está tratando de obtener todos los botones de su lista de formularios que puede hacer:
var allButtons = v.SelectMany(r => r.Controls.OfType
Sospecho que realmente estás buscando Where
– solo llamando Contains
en un ForEach
llamar no va a hacer nada por ti. Del mismo modo, no creo que realmente estés buscando una lista de formularios si te interesa botones. Sospecho que puede estar buscando:
var buttons = this.Controls.OfType
Tenga en cuenta que esto no entrará en los controles anidados; si necesita hacer eso, necesitará algo recursivo. (Es posible que pueda encontrar otras preguntas sobre eso… no ayuda que no sepamos si se trata de WinForms, WebForms, otra cosa…)
Recuerda comunicar esta sección si te fue útil.