[c#] 在List <T> ForEach()中設置多個屬性?


Answers

匿名方法是你的朋友

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

MSDN:

Question

給定一個類:

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> oops的一部分!




老實說,這裡真的不需要使用List.ForEach:

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



Links



Tags

c# c#   linq