c# - 使用反射获取属性值的空验证
问题描述
在这里,我试图将一个通用的值列表添加到字典中。
下面是 DocDetails 类
public class DocDetails
{
public string DocId { get; set; }
public string Description { get; set; }
public string Category { get; set; }
}
DocDetails
我正在获取docDetailsList
对象列表。使用它获取 DocDetails 的每个项目并获取属性名称和值,然后添加到字典中。
Dictionary<string, List<object>> docDict = new Dictionary<string, List<object>>();
foreach (var doc in docDetailsList)
{
var dict = doc.GetType().GetProperties().ToDictionary(
m => m.Name, m => new List<object>()
{
m.GetValue(doc, null).ToString()
});
docDict.Add(dict);
}
尝试获取此行中的属性值时,m.GetValue(doc, null).ToString()
如果值为 null,则会出现异常。我如何验证它,即使它为空,我也需要将该属性名称添加到具有空值的列表中。任何人都可以在这里帮助我吗
解决方案
代替:
m.GetValue(doc, null).ToString()
您可以在调用之前检查它是否为空ToString()
:
m.GetValue(doc, null) != null ? m.GetValue(doc, null).ToString() : null
推荐阅读
- python - 如何将数据框中的对象列更改为 Python 中的数字列?
- java - Java Lambda 函数在连接到 Informix DB 时超时
- typescript - 参数类型 Event 不可分配给参数类型 Event & DragEvent
- java - Java 8:输入功能接口列表并在 .stream() 之后动态调用它们
- java - java.lang.ClassCastException:类 org.springframework.security.core.userdetails.User 不能强制转换为类
- android - android studio保存最后选择的背景图片
- bash - 如何仅在会话期间将远程服务器的登录 shell 切换为 bash?
- sql - 从下面的查询中列出管理至少两名员工的老板的姓氏
- javascript - Fabric.js - 图像质量差
- json - 在flutter中访问quicktype JSON对象