Установить несколько свойств в списке ForEach ()?
дан класс:
class foo
{
public string a = "";
public int b = 0;
}
затем общий список из них:
var list = new List<foo>(new []{new foo(), new foo()});
если я должен назначить несколько свойства внутри следующее List<T>
ForEach()
метод, есть более простой способ сделать это, что ниже? Надеюсь, я немного туповат.
// 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()
был метод расширения LINQ, когда он на самом деле является частью List<T>
упс!
5 ответов:
все, что вам нужно сделать, это ввести некоторые скобки так, чтобы ваш анонимный метод может поддерживать несколько строк:
list.ForEach(i => { i.a = "hello!"; i.b = 99; });
list.ForEach(lamba=>lambda.a="hello!");
становится
list.ForEach(item=>{ item.a = "hello!"; item.b = 99; });
конечно, вы также можете назначить их при создании списка, как:
var list = new List<foo>(new []{new foo(){a="hello!",b=99}, new foo(){a="hello2",b=88}});