型 などのプロパティを持つクラスがあります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<>))
{
...
}