IEnumerable与未知类型

时间:2015-03-23 21:15:51

标签: c#

我有一个包含自定义对象映射的映射类:

public class MappingType
{
    public Type source {get;set;}
    public Type dest {get;set;}
}

为什么我不能在下面使用它们(mappinglistMappingType的对象?)

IEnumerable<mappinglist[0].source,mappinglist[0].dest> customlist;

我有什么选择?我怎样才能在这种情况下使用它?

1 个答案:

答案 0 :(得分:0)

C#泛型系统适用于编译时已知的类型。您不能仅在运行时提供已知类型参数的类型。

此外,正如@JonSkeet指出的那样,IEnumerable<T>只接受一个类型参数。

如果您的类型有任何共同点(共享基类,共享接口),您可以使用泛型的“共同点”,例如。

IEnumerable<ISomeSharedInterface> customList;

如果它们没有任何共同点,您仍然可以使用非通用IEnumerable