2

重複の可能性:
リフレクション - System.Type インスタンスからジェネリック パラメーターを
取得する ジェネリック List<T> で T の実際の型を取得する

クラスから PropertyInfo-List をループしています。このクラスでは、さまざまなリストに興味があります。たとえばList<int>List<string>List<Book>、 aso です。

しかし、List-Object の Type を取得する方法がわかりません。私はただのようなものを手に入れます

System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089]].

この情報を分解して、この情報から Type を作成することもできますが、もっとスムーズな方法があるといいのですが?

4

2 に答える 2

9

単純:

Type type = list.GetType().GetGenericArguments()[0];
// The first argument will be the `T` inside `List<T>`... so the list type ;)
于 2012-04-26T21:16:45.883 に答える
4
var  list = GetListFromFoo();
Type listType = list.GetType();
Type theTypeOfT = listType.GetGenericArguments()[0]; 

または1行で:

list.GetType().GetGenericArguments()[0]; 
于 2012-04-26T21:17:44.300 に答える