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

本文关键字:更新 列表 方法 可以使 我们 | 更新日期: 2023-09-27 18:10:56

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

下面的代码可以工作吗?

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

请帮帮我。提前感谢!

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

为什么不用foreach呢?

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

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

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

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

的副作用。

如果它是一个列表,那么你应该使用:

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

或等价的

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