首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否可以将子类添加到C#中的List<Parent>?

在C#中,不可以直接将子类添加到List<Parent>中。这是因为List<Parent>是一个泛型列表,它的类型参数是Parent,只能接受Parent类型的对象。如果尝试将子类添加到List<Parent>中,会导致编译错误。

然而,可以通过使用协变和逆变来实现将子类添加到List<Parent>中的需求。协变和逆变是C# 4.0引入的特性,用于在泛型类型参数上放宽或限制类型的转换规则。

在这种情况下,可以使用协变来实现将子类添加到List<Parent>中。具体做法是将List<Parent>声明为IEnumerable<out Parent>,这样就可以将子类对象添加到列表中。示例代码如下:

代码语言:txt
复制
List<Child> children = new List<Child>();
List<Parent> parents = children.Cast<Parent>().ToList();

在上述代码中,ChildParent的子类,首先创建了一个List<Child>对象children,然后通过Cast<Parent>()方法将其转换为IEnumerable<Parent>,最后使用ToList()方法将其转换为List<Parent>

需要注意的是,协变只适用于只读操作,即只能从泛型类型参数返回,不能进行写操作。如果尝试在List<Parent>中添加子类对象,仍然会导致编译错误。

推荐的腾讯云相关产品:无

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券