使用Type类(C#)声明泛型

时间:2017-01-29 10:33:30

标签: c# generics

我正在尝试从对象转换为List,在运行时我知道'T'。有没有办法施放或任何其他解决方案

//这默认返回一个对象,但在运行时返回List<T>

var getList = modelClass.GetValue(modelObject);

现在, getList 不允许使用Linq属性。

我知道Type(T)(通过代码动态获取)

是否有任何解决办法如下:

var getList = (List<typeClassObject>))modelClass.GetValue(modelObject);

请帮助解决这个问题

1 个答案:

答案 0 :(得分:0)

假设modelClass.GetValue(modelObject)返回IEnumerable<someType>,您应该可以按如下方式进行转换:

var getList = modelClass.GetValue(modelObject)
                 .Select(obj => ((object) obj) as typeClassObject);

getList现在是IEnumberable<typeClassObject>

做的:

var getList = modelClass.GetValue(modelObject)
                 .Select(obj => ((object) obj) as typeClassObject)
                 .ToList();

getListList<typeClassObject>