C#使用foreach迭代包含2个不同对象类的列表

Sea*_*ean 1 c# foreach casting list

这是我的问题.

我有两个类都继承了一个普通的类.IE是一个汽车类和一个van类,它们都继承了车辆类.我将它们添加到了车型的通用列表中.汽车类具有noofseats属性,并且货车具有权重属性.有没有办法使用foreach循环迭代它们并根据它们是汽车类还是van类输出?

foreach (van v in vehiclelist)
{
  lsttest.Items.Add(v.weight;)
}

foreach (car c in vehiclelist)
{
  lsttest.Items.Add(c.nofoseats;)
}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误:'无法将'Test.Car'类型的对象强制转换为'Test.Van'.'

有没有一种简单的方法可以解决这个问题,还是只是不可能?谢谢

L.B*_*L.B 10

foreach (van v in vehiclelist.OfType<Van>())
{
}
Run Code Online (Sandbox Code Playgroud)