Dada una clase:
class foo
{
public string a = "";
public int b = 0;
}
Luego una lista genérica de ellos:
var list = new List<foo>(new []{new foo(), new foo()});
Si debo asignar varias propiedades dentro del siguiente List<T>
ForEach()
método, ¿hay una forma más sencilla de hacerlo que a continuación? Ojalá esté un poco tonto.
// one property - easy peasy
list.ForEach(lambda => lambda.a="hello!");
// multiple properties - hmm
list.ForEach(lambda => new Action(delegate() { lambda.a = "hello!"; lambda.b = 99;}).Invoke());
Editar: El pensamiento ForEach()
era un método de extensión LINQ, cuando en realidad es parte de List<T>
¡Ups!
List<T>
y no es LINQ. Además, puede crear su lista convar list = new List<foo>() { new foo(), new foo() };
Respuestas:
Todo lo que necesita hacer es introducir algunos corchetes para que su método anónimo pueda admitir varias líneas:
fuente
El método anónimo es tu amigo
MSDN:
fuente
Se convierte
Por supuesto, también puede asignarlos cuando crea la lista como:
fuente
fuente
Honestamente, realmente no es necesario usar List.ForEach aquí:
fuente