c# - 获取不为空的属性名称

标签 c# .net linq reflection

获取某个对象的属性

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

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

我怎样才能得到这些?

最佳答案

为 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# 版本创建一个元组:

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

关于c# - 获取不为空的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45520352/

相关文章:

c# - 在 QueryString 中指定 returnURL

c# - 如何避免 ViewBag(或 ViewData)以支持模型?

.net - 如何在 MSTest 单元测试项目中使用 "external"配置文件(即使用 configSource)?

c# - Linq 合并列表

c# - 使用 IEnumerable.Select 过滤记录

c# - 通过 LINQ 检查分隔字段中的值

c# - 如何读取使用 cmd.exe 运行的命令的输出

c# - WPF 中的列表框分隔符和最终分隔符的省略

.net - TCP Socket 两个节点通话时 "flow of events"是什么

c# - 系统字体为 125% 时奇怪的文本缩放