我有几个课程:
- 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();
或者,您可能会根据您希望处理源车列表的方式避免将其转换为列表.