leo*_*ora 1 c# collections casting
我有返回的代码和IVehicle接口的数组
IEnumerable<IVehicle> allVehicles = GetAllVehicles();
Run Code Online (Sandbox Code Playgroud)
我知道所有这些对象都是Car对象.什么是正确的投射方式
IEnumerable<IVehicle>
Run Code Online (Sandbox Code Playgroud)
至
IEnumerable<Car>
Run Code Online (Sandbox Code Playgroud)
因为我需要将这些传递给另一个需要的功能 <Enumerable<Car>
我不确定这实际上是否需要,但可以使用Linq扩展方法完成,如下所示.
IEnumerable<Car> Cars = allVehicles.Cast<Car>();
Run Code Online (Sandbox Code Playgroud)
然而,如果在成员之一,这将抛出一个异常allVehicles是不是一个Car; 如果需要,可以如下规避这一点.
IEnumerable<Car> Cars = allVehicles.OfType<Car>().Cast<Car>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |