获取非null的属性的名称

时间:2017-08-05 09:27:54

标签: c# .net linq reflection

我得到了某个对象的属性

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

如何获取属性的名称,哪些值不是null

我怎么能得到那些?

1 个答案:

答案 0 :(得分:7)

尝试使用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

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();
}