Bei einer Klasse:
class foo
{
public string a = "";
public int b = 0;
}
Dann eine allgemeine Liste von ihnen:
var list = new List<foo>(new []{new foo(), new foo()});
Wenn ich innerhalb der folgenden Methode mehrere Eigenschaften zuweisen soll List<T>
ForEach()
, gibt es eine einfachere Möglichkeit, dies unten zu tun? Hoffentlich bin ich ein bisschen dick.
// 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: Thought ForEach()
war eine LINQ-Erweiterungsmethode, wenn es tatsächlich Teil von List<T>
oops ist!
List<T>
und nicht LINQ. Sie können Ihre Liste auch mitvar list = new List<foo>() { new foo(), new foo() };
Antworten:
Sie müssen lediglich einige Klammern einfügen, damit Ihre anonyme Methode mehrere Zeilen unterstützen kann:
quelle
Anonyme Methode ist dein Freund
MSDN:
quelle
Wird
Natürlich können Sie sie auch beim Erstellen der Liste wie folgt zuweisen:
quelle
quelle
Ehrlich gesagt, es ist wirklich nicht nötig, List.ForEach hier zu verwenden:
quelle