首页 新闻 会员 周边

C#如何把一个IEnumerable<Object> 转换成 T 这个T是IEnumerable<int>

0
[待解决问题]

C#如何把一个IEnumerable<Object> 转换成 T    假设这个T是IEnumerable<int> , 当然前提是你 只知道是个T 所以必须反射么

问题补充:

强转会失败的

Hero小默的主页 Hero小默 | 初学一级 | 园豆:53
提问于:2017-08-11 10:20
< >
分享
所有回答(3)
0

可以使用as 运算符

JeffWong | 园豆:2328 (老鸟四级) | 2017-08-11 10:31
0

IEnumerable<T>是不能向下强转,因为它是<out T>协变,如果你是IEnumerable<int>则可以直接带到method(IEnumerabe<object>)中。

你直接tolist后convertall吧。

Daniel Cai | 园豆:10424 (专家六级) | 2017-08-11 11:12
1

Linq有两个扩展:

OfType<T>:过滤类型,类似 Where(o => o is T)

Cast<T>:转换类型,类似 Select(o => o as T)

519740105 | 园豆:5810 (大侠五级) | 2017-08-11 17:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册