そのリストのタイプが実行時までわからない場合、ジェネリックリストを反復処理する方法を知っている人はいますか?
たとえば、次のようobj1
に関数に渡されると仮定しObject
ます。
Dim t As Type = obj1.GetType
If t.IsGenericType Then
Dim typeParameters() As Type = t.GetGenericArguments()
Dim typeParam As Type = typeParameters(0)
End If
上記を使用して、ジェネリック リスト ( ) が渡され、それが ( ) 型であることobj
を確認できます。ジェネリック パラメーターが 1 つしかないという大きな仮定を立てていることはわかっていますが、この単純な例では問題ありません。List(Of String)
t
String
typeParam
私が知りたいのは、上記に基づいて、次のようなことをどのように行うかです。
For Each item As typeParam In obj1
'do something with it here
Next
または、取得するのと同じくらい簡単なものでもobj1.Count()
。