码迷,mamicode.com
首页 > 其他好文 > 详细

List<子类>转List<父类>过程中犯的一些错误

时间:2014-10-10 00:57:53      阅读:7861      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   div   问题   log   new   bs   

新人犯的错误,记录一下供以后参考。

有两个类 

1 public class A
2 {
3    public string Name{get;set;}  
4 }
5 
6 public class B:A
7 {
8   public int Age{get;set;}
9 }

有一个方法,需要类B age作为条件,最后要返回的是其父类A的集合

1 public List<A> GetAByAge(int age)
2 {
3      //方法体
4 }

本心想着,B是A的子类,直接返回List<B>即可,但实际是不行。于是我开始找原因,寻寻觅觅发现,原来思路出问题了。

事实是这样子的,虽然A是B的子类,但是List<A> 和List<B>他的实际类型都是List<T>,A、B只是List<T>对象的一个泛型而已。所以,直接返回肯定是不行的,强转,自然也是有问题的。那要怎么解决呢?高手告诉我,其实List已经提供了这种转的方法。

比如b是List<B>类型的一个对象,那么就可以利用b.Cast<A>().ToList();来转换为List<A> 对象。

另外我也发现,可以这么写List<A> a=new List<A>(b);这种写法我没测试,大家可以试试,应该也是可以的。

List<子类>转List<父类>过程中犯的一些错误

标签:style   blog   color   sp   div   问题   log   new   bs   

原文地址:http://www.cnblogs.com/baiyunchen/p/4014622.html

(4)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!