从派生类列表转换为基类列表
面向对象编程中,继承基类和接口是很常见的做法。然而,在处理集合时,我们遇到一个明显的限制:为什么不能使用与基类相同的类或接口来定义列表?
考虑以下示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
尝试将 listOfA
实例化为 List<C>
会导致编译器错误。为了解决这个问题,我们需要找到一个解决方法。
解决方案:显式转换和 LINQ
一种方法是手动遍历列表并将每个元素转换为所需的基类型。这可以使用 ConvertAll
方法实现:
1 |
|
另一种使用 LINQ 的解决方案是使用 Cast
运算符转换整个列表:
1 |
|
通过使用这些技术,我们可以有效地将派生类的列表转换为其基类型的列表,从而在处理继承方案时具有更大的灵活性。
以上是如何将派生类对象的列表转换为C#中的基类对象列表?的详细内容。更多信息请关注PHP中文网其他相关文章!