创建指定类型的通用列表

时间:2010-05-26 16:15:24

标签: vb.net list generics

我想创建一个通用列表 - 但我想在运行时指定类型 - 有没有办法可以做到这一点?或许使用反思?

像这样......

Public Shared Sub create(ByVal t As Type) 

  Dim myList As New Generic.List(Of t)

End Sub

提前致谢

詹姆斯

2 个答案:

答案 0 :(得分:2)

如果调用者知道类型,您可以使方法本身通用:

Public Shared Sub create(Of t)() 
    Dim myList As New Generic.List(Of t)
End Sub

如果来电者不知道类型,您将不得不求助于反思 - see the accepted answer to this question以获取更多信息。

答案 1 :(得分:0)

我有一个功能就是这样做:

Public Shared Function CreateList(Of T)(ByVal ParamArray items() As T) As List(Of T)
    Return New List(Of T)(items)
End Function

例如,我可以通过这样做来创建一个整数列表:

dim L as list(of Integer) = CreateList(1,2,3,4,5)

或者创建一个文本框列表:

dim L as list(of TextBox) = CreateList(txtPhone1, txtPhone2, txtPhone3)

或者一般来说,任何类型。