我有一个类型为List的集合,我想将其转换为SomeType[]。SomeType在运行时之前是未知的。
必须使用以下过程的签名来完成此操作。
private object ConvertListToArray(IList collection)
{
// This does not work since SomeType is not known before runtime.
var convertedList = collection.Cast<SomeType>().ToArray();
return convertedList;
}
请注意,集合是IList类型,但它的具体类型是已知的。
List<SomeType>
返回集合必须是SomeType[]类型的对象。
如何做到呢?
SomeType[]
而不是object[]
、String[]
或者SomeOtherType[]
?如果集合中包含了SomeType
和SeomOtherType
,你会期望什么结果?如果集合为空呢? - Jon Skeet