5

タイトルが私の意味を伝えているかどうか確信が持てません。この質問を文章でより適切に定義できる場合は、タイトルを変更してください。

T のコレクションを反復処理したいのですが、(T)object を操作する代わりに、(T)object.SomeProperty を取得したいと考えています。

どのように私はそれを行うことができます:

List<Car> _cars;
FillList(_cars);

foreach (Car car in _cars)
{
    Windshield ws = car.Windshield;

    ws.DoWorkA();
    ws.DoWorkB();
    ws.DoWorkC();
}

私がやりたいこと:

List<Car> _cars;
FillList(_cars);

foreach (Car car in _cars using ws as Windshield = car.Windshield)
{
    ws.DoWorkA();
    ws.DoWorkB();
    ws.DoWorkC();
}

さらに怠惰なプログラマーになる方法はありますか?

4

2 に答える 2

14

LINQ を使用して以下を選択できます。

foreach (Windshield ws in _cars.Select(car => car.Windshield))
{
    ws.DoWorkA();
    ws.DoWorkB();
    ws.DoWorkC();
}
于 2012-06-22T14:01:40.797 に答える
1

Linq を使用します。

List<Car> _cars; 
FillList(_cars);  
foreach (Windshield ws in _cars.Select(c=>c.Windshield) {
         ws.DoWorkA();
         ws.DoWorkB();
         ws.DoWorkC(); 
    } 
于 2012-06-22T14:03:23.633 に答える