2014-10-22 56 views
0

有没有一种方法来产生一种通用的扩展方法,可以采取一种类型并将其转换为另一种类型通过将类型的源对象通用/未知输出类型的构造函数?如何实现扩展方法与通用类型(T),返回新的T2(T)

这是我想赚更多的通用代码:

<Extension()> 
Public Function ToPublicList(source As List(Of HashTag)) As List(Of WebServiceApiV1.PublicDataClasses.HashtagPublicInfo) 

    Return (From ht In source Select New WebServiceApiV1.PublicDataClasses.HashtagPublicInfo(ht)).ToList() 

End Function 

基本上我想要做的事,以这样的效果:

<Extension()> 
Public Function ToPublicList(Of T)(source As IEnumerable(Of T), destinationType As Type) As List(Of destinationType) 

    Return (From x As T In source Select New destinationType(x)).ToList() 

End Function 

回答

0

你有没有使用Convert.ChangeType考虑?

它应该是这样的:

Return (From x As T In source Select Convert.ChangeType(x, destinationType)).ToList() 

对于这项工作,destinationType必须实现的接口IConvertible

相关问题