Учитывая класс:
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());
Изменить: Мысль ForEach()
была методом расширения LINQ, хотя на самом деле это часть List<T>
упс!
List<T>
а не LINQ. Кроме того, вы можете создать свой список с помощьюvar list = new List<foo>() { new foo(), new foo() };
Ответы:
Все, что вам нужно сделать, это ввести несколько скобок, чтобы ваш анонимный метод мог поддерживать несколько строк:
источник
Анонимный метод - ваш друг
MSDN:
источник
становится
Конечно, вы также можете назначить их при создании списка, например:
источник
источник
Честно говоря, здесь действительно не нужно использовать List.ForEach:
источник