2011-10-12 4 views
1

私はオブジェクトのリスト(MyList)を持っています...そしてそのリスト内の各アイテムの1つのプロパティ(Priority)を更新したいと思います。匿名メソッドを使用してリストを更新できますか?

以下のコードはそれに対応しますか?

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

私を助けてください。前もって感謝します!

+1

あなたはそれを試してみることはできませんか? – mellamokb

+2

拡張メソッド 'All()'は、リスト内の各項目がデリゲートで与えられた基準を満たしているかどうかによってtrue/falseを返します。デリゲートはブール値を返さないため、コンパイルしないでください。 – neontapir

答えて

2

なぜ使用しないのですかforeach

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

あなたは本当にあなたがForEach()を使用することができますデリゲートを使用する場合:

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

それがリストである場合は、priority++

1

と副作用を導入以来けれどもこれはお勧めしません、

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

または次のように使用する必要があります。 valent:

MyList.ForEach(delegate(ItemViewModel i) { i.Priority = priority++ }); 
関連する問題