ジェネリック型を比較す​​るにはどうすればいいですか? 質問する

ジェネリック型を比較す​​るにはどうすればいいですか? 質問する

型 などのプロパティを持つクラスがありますList<float>List<int>ここで、リフレクションを介してこのクラスのプロパティを照会し、 のリストを取得しますPropertyInfo

型のタイプをフィルタリングしたいのですList<>が、比較

propertyInfo.PropertyType == typeof(List<>)

失敗します。

名前を比較することでこれを回避できます。つまり、次の比較が機能します。

propertyInfo.PropertyType.Name == typeof(List<>).Name

ジェネリック型を比較す​​るより良い方法があると思います。何か手がかりはありますか?

ベストアンサー1

以下を使用できます:

Type type = propertyInfo.PropertyType;
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
{
    ...
}

おすすめ記事