首页 > 代码库 > List<子类>转List<父类>过程中犯的一些错误
List<子类>转List<父类>过程中犯的一些错误
新人犯的错误,记录一下供以后参考。
有两个类
1 public class A2 {3 public string Name{get;set;} 4 }5 6 public class B:A7 {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<父类>过程中犯的一些错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。