在C#中,将接口列表强制转换为对象列表的推荐方法是什么
本文关键字:列表 对象 是什么 方法 转换 接口 | 更新日期: 2023-09-27 18:24:37
我有返回IVehicle接口的数组的代码
IEnumerable<IVehicle> allVehicles = GetAllVehicles();
我知道所有这些物体都是汽车物体。铸造的正确方法是什么
IEnumerable<IVehicle>
至
IEnumerable<Car>
因为我需要将这些传递到另一个需要<Enumerable<Car>
的函数中
您可以这样投射:
var allCars = allVehicles.Cast<Car>();
我不确定这是否真的是需要的,但可以使用Linq扩展方法来完成,如下所示。
IEnumerable<Car> Cars = allVehicles.Cast<Car>();
但是,如果allVehicles
中的一个成员是而不是Car
,则会引发异常;如果需要的话,这可以通过以下方式来规避。
IEnumerable<Car> Cars = allVehicles.OfType<Car>().Cast<Car>();