Можем ли мы обновить список, используя анонимные методы? - PullRequest
1 голос
/ 12 октября 2011

У меня есть список (MyList) объектов ... и я хотел бы обновить одно свойство (Priority) каждого элемента в этом списке.

Будет ли работать приведенный ниже код?

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

Пожалуйста, помогите мне. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

Почему бы просто не использовать foreach?

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

Если вы действительно хотите использовать делегата, вы можете использовать ForEach():

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

Это не рекомендуется, так каквы вводите побочный эффект с priority++

1 голос
/ 12 октября 2011

Если это список, то вы должны использовать:

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

или эквивалент:

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