Dada uma aula:
class foo
{
public string a = "";
public int b = 0;
}
Em seguida, uma lista genérica deles:
var list = new List<foo>(new []{new foo(), new foo()});
Se devo atribuir várias propriedades dentro do List<T>
ForEach()
método a seguir , há uma maneira mais simples de fazer isso abaixo? Espero estar sendo um pouco estúpido.
// 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());
Edit: O pensamento ForEach()
era um método de extensão LINQ, quando na verdade é parte do List<T>
ops!
List<T>
e não é LINQ. Além disso, você pode criar sua lista comvar list = new List<foo>() { new foo(), new foo() };
Respostas:
Tudo que você precisa fazer é introduzir alguns colchetes para que seu método anônimo possa suportar várias linhas:
fonte
Método anônimo é seu amigo
MSDN:
fonte
Torna-se
Claro, você também pode atribuí-los ao criar a lista como:
fonte
fonte
Honestamente, realmente não há necessidade de usar List.ForEach aqui:
fonte