使用IEnumerable<out T>,可以进行协变
查了好久,不会,有例子吗
@代码小兵的成长: IEnumerable<IFather> fathers = new List<Student>();其中,Student继承IFather
@jello chen: 我先测试一下把,问题是你这种和IList<IFather> fathers = new List<Student>();没啥区别把,转不了应该
@代码小兵的成长: 在尝试之前,不要轻易下结论
@jello chen: 确实是,虽然我知道List<>继承自IEnumerable<>,但是原因还是没搞懂,毕竟List<>转ICollection<>没成功
@代码小兵的成长: 协变,List<T>和IEnumerable<out T>区别很明显
@jello chen: 嗯嗯,专门搞清楚这个东西有空
遍历老的列表,然后一个一个加入到新的列表中
这么惨啊,好可怜
@代码小兵的成长: 你可以这一个扩展方法方便以后使用,可以写成通用的
@刘宏玺: 自己写的太烂了,不过必须要转了
IList是个什么鬼
额
IFather是student的父类。List<IFather>不是IList<student>的父类。没法转换。
只能说没法直接转换