2010-05-26 7 views
2

Je souhaite créer une liste générique - mais je veux spécifier le type lors de l'exécution - est-il possible de le faire? en utilisant la réflexion peut-être?Création d'une liste générique d'un type spécifié

Quelque chose comme ça ...

Public Shared Sub create(ByVal t As Type) 

    Dim myList As New Generic.List(Of t) 

End Sub 

Merci à l'avance

James

+0

Bien dans ce cas, essayez System.Reflection.Emit. – Joshua

Répondre

1

Si les appelants savent le type, vous pouvez faire de la méthode elle-même générique:

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

Si les appelants ne connaissent pas le type, vous devrez recourir à la réflexion - see the accepted answer to this question pour plus d'informations.

0

J'ai une fonction de faire exactement cela:

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

Par exemple, je peux créer une liste d'entiers en faisant ceci:

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

Ou créer une liste de, disons, textboxes :

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

Ou en général, tout type.

Questions connexes