我们可以使用匿名方法更新列表吗?

时间:2011-10-12 03:23:01

标签: c# delegates anonymous-methods

我有一个对象列表(MyList)...我想更新该列表中每个项目的一个属性(Priority)。

以下代码是否适用于此?

this.MyList.All(
    delegate(ItemViewModel itemObject)
    {   
        itemObject.Priority = priority++;
    }
)

请帮帮我。提前谢谢!

2 个答案:

答案 0 :(得分:2)

为什么不使用foreach

foreach(ItemViewModel itemObject in MyList)
  itemObject.Priority = priority++;

如果您真的想使用委托,可以使用ForEach()

MyList.ForEach(itemObject =>
{
    itemObject.Priority = priority++;
});

这是不可取的,因为你引入了priority++

的副作用

答案 1 :(得分:1)

如果是列表,那么您应该使用:

MyList.ForEach(i => i.Priority = priority++);

或同等的:

MyList.ForEach(delegate(ItemViewModel i) { i.Priority = priority++ });