我有几个课程:
class Vehicle { } class Car : Vehicle { }
我有一个派生类的列表:
的IList<汽车和GT;汽车;
我想将列表转换为基类,并尝试:
的IList<车载> baseList = cars as IList< Vehicle> ;; 但我总是空值.也
cars is IList<Vehicle> evaluates to be false.
如果我执行以下操作,我可以将项目添加到列表中:
List<Vehicle> test = new List<Vehicle> (); foreach ( Car car in cars ) { test.Add(car); }
我得到我的名单,但我知道必须有一个更好的方法.
有什么想法吗?
解决方法
使用
IEnumerable
<T>
.Cast:
IList<Vehicle> vehicles = cars.Cast<Vehicle>().ToList();
或者,您可能会根据您希望处理源车列表的方式避免将其转换为列表.