2017-03-03 12 views
2

オブジェクトのDateTimeおよびNullable < DateTimeプロパティを取得しようとしています。私は次のラムダ式を使用していますが、0の結果を返します。これを行う正しい方法は何ですか?Ref。を使用してT objのすべてのDateTimeとNullableを取得

Type t = obj.GetType(); 

// Loop through the properties. 
PropertyInfo[] props = t.GetProperties() 
    .Where(p => p.GetType() == typeof(DateTime) || p.GetType() == typeof(Nullable<DateTime>)).ToArray(); 

答えて

3

p.GetType()あなたは常にPropertyInfoあるpの種類を提供します。代わりにp.PropertyTypeを使用する必要があります。例:

Type t = obj.GetType(); 

//It's a little nicer to keep the types you're searching on 
//in a list and compare using Contains(): 
var types = new[] { typeof(DateTime), typeof(Nullable<DateTime>) }; 

PropertyInfo[] props = t.GetProperties() 
    .Where(p => types.Contains(p.PropertyType)) 
    .ToArray(); 
関連する問題