C# 在列表中设置多个属性<;T>;ForEach()?

C# 在列表中设置多个属性<;T>;ForEach()?,c#,linq,C#,Linq,给定一个类: class foo { public string a = ""; public int b = 0; } 然后是它们的通用列表: var list = new List<foo>(new []{new foo(), new foo()}); 编辑:认为ForEach()是一种LINQ扩展方法,而实际上它是Listoops的一部分 匿名方法是你的朋友 list.ForEach(item => {

给定一个类:

class foo
{
    public string a = "";
    public int b = 0;
}
然后是它们的通用列表:

var list = new List<foo>(new []{new foo(), new foo()});

编辑:认为
ForEach()
是一种LINQ扩展方法,而实际上它是
List
oops的一部分

匿名方法是你的朋友

list.ForEach(item => 
              { 
                  item.a = "hello!"; 
                  item.b = 99; 
              }); 
MSDN:


您只需引入一些括号,这样您的匿名方法就可以支持多行:

list.ForEach(i => { i.a = "hello!"; i.b = 99; });
变成

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}}); 
var list=newlist(new[]{new foo(){a=“hello!”,b=99},new foo(){a=“hello2”,b=88});

老实说,这里真的不需要使用List.ForEach:

foreach (var item in list) { item.a="hello!"; item.b=99; }

我不知道你的答案,但我对这段代码的方法非常感兴趣。你能定义一个动作是什么吗?这并不重要,但这是
列表中的一个方法,不是LINQ。此外,您还可以使用
var list=new list(){new foo(),new foo()}创建列表@Anwar
var list = new List<foo>(new []{new foo(){a="hello!",b=99}, new foo(){a="hello2",b=88}}); 
list.ForEach(i => i.DoStuff());
public void DoStuff(this foo lambda)
{
  lambda.a="hello!"; 
  lambda.b=99;
}
foreach (var item in list) { item.a="hello!"; item.b=99; }