清泛IT社区
标题:
C#泛型(List)中基类和子类 怎么转换?
[打印本页]
作者:
清泛网
时间:
2015-11-13 11:37
标题:
C#泛型(List)中基类和子类 怎么转换?
List<ChildClass> childList = ...
Foo(List<BaseClass> baseList);
需求:把子类列表传入函数Foo,Foo支持所有子类列表。
方法一:
Foo(
childList.Select(p => p as BaseClass).ToList()
)
上述 Select 转换是双向的,基类转子类也没问题。
方法二:
List<BaseClass> baseList = new List<BaseClass>();
baseList.AddRange(childList);
Foo(baseList);
这种方式是单向的,只能子类转基类,反之报错:
(, 下载次数: 4370)
上传
点击文件名下载附件
下载积分: 经验 1
方法三:
函数参数使用泛型
public string
Foo<T>(List<T> list) where T : BaseClass
{ ... }
Foo(childList);
方法四:
Foo(
IEnumerable<BaseClass> baseList
);
Foo(childList);
欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/)
Powered by Discuz! X3.3