views:

62

answers:

2
Public Function CastToT(Of T)(ByVal GenericType(Of Object) data) As GenericType(Of T)
   Return DirectCast(data, GenericType(Of T))
End Function

The above clearly does not work. Is there any way to perform this cast if I know that all objects inside data are in fact of Type T?

+1  A: 

No, you cannot cast it directly. Presumably your GenericType is some kind of a container. You will just have to create a new instance of GenericType(Of T) and copy the contents into it, casting each object from Object to T. If GenericType was a System.Collections.List(Of T) then LINQ makes this very easy.

Evgeny
Thanks Evgeny. DotNET 2.0 only so no Linq for me. Writing a function that directcasts all the items is no problem, just wondered whether there was a dirty trick I could use.
David Rutten
+2  A: 

This is not possible, except for interfaces.

SLaks