C#将Foreach值转换为其中一个属性

Mic*_*ael 5 c# oop foreach

我不确定这个标题是否表达了我的意思,如果你能用句子更好地定义这个问题,请改变它.

我想迭代一个T的集合,但我没有使用(T)对象,而是想要检索(T)object.SomeProperty.

我怎么做:

List<Car> _cars;
FillList(_cars);

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

    ws.DoWorkA();
    ws.DoWorkB();
    ws.DoWorkC();
}
Run Code Online (Sandbox Code Playgroud)

我喜欢做什么:

List<Car> _cars;
FillList(_cars);

foreach (Car car in _cars using ws as Windshield = car.Windshield)
{
    ws.DoWorkA();
    ws.DoWorkB();
    ws.DoWorkC();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法成为一个更懒惰的程序员?

nem*_*esv 14

您可以使用LINQ并选择:

foreach (Windshield ws in _cars.Select(car => car.Windshield))
{
    ws.DoWorkA();
    ws.DoWorkB();
    ws.DoWorkC();
}
Run Code Online (Sandbox Code Playgroud)