2017-08-05 4 views
2

私はいくつかのオブジェクトのプロパティを取得nullでないプロパティの名前

var properties = typeof(T).GetProperties() 
          .Select(x => x.Name) 
          .ToList() 

にはどうすれば値がnullないプロパティの名前を取得することができます取得しますか?

どうすれば入手できますか?

+0

!句。 – Hybridzz

答えて

3

C#7のためにこのコードを試してみてください。

public static void GetProps<T>(T obj) 
{ 
    var result = typeof(T).GetProperties() 
     .Select(x => new { property = x.Name, value = x.GetValue(obj) }) 
     .Where(x => x.value != null) 
     .ToList(); 
} 

それとも、古いC#バージョンのためTupleを作成することができます。x.GetValue( 、null)を追加=どこにnullを

public static void GetProps<T>(T obj) 
{ 
    var result = typeof(T).GetProperties()     
     .Select(x => Tuple.Create(x.Name, x.GetValue(obj))) 
     .Where(x => x.Item2 != null) 
     .ToList(); 
} 
+0

@George Alexandriaまで私は匿名のタイプがC#4(または5?私はよく分かりません)で導入されたことを知っています。しかし、 'Tuple'バージョンにはありがとうございます。 –

+0

@はい、それは私の間違いです)[彼らはC#3で導入されました](https://en.wikipedia.org/wiki/Anonymous_type) –

関連する問題