C#如何把一个IEnumerable<Object> 转换成 T 假设这个T是IEnumerable<int> , 当然前提是你 只知道是个T 所以必须反射么
强转会失败的
可以使用as 运算符
IEnumerable<T>是不能向下强转,因为它是<out T>协变,如果你是IEnumerable<int>则可以直接带到method(IEnumerabe<object>)中。
你直接tolist后convertall吧。
Linq有两个扩展:
OfType<T>:过滤类型,类似 Where(o => o is T)
Cast<T>:转换类型,类似 Select(o => o as T)