我有一个List<object>
我想强制转换为强类型数组。问题是我在编译时不知道列表类型,因为它可能是许多对象之一。
基本上,如果我有Type objectType = list[0].GetType()
我希望能够调用list.Cast<objectType>().ToArray()
.
我怎样才能做到这一点?我尝试使用反射如下:
Type listType = list[0].GetType();
MethodInfo castMethod = typeof(Enumerable).GetMethod("Cast", BindingFlags.Static | BindingFlags.Public);
castMethod = castMethod.MakeGenericMethod(new Type[] { listType });
castMethod.Invoke(null, new object[] { list});
该调用返回一个似乎没有公共方法的 CastIterator。