【发布时间】:2018-09-14 15:48:34
【问题描述】:
我正在尝试将通用值列表添加到字典中。
下面是 DocDetails 类
public class DocDetails
{
public string DocId { get; set; }
public string Description { get; set; }
public string Category { get; set; }
}
我在docDetailsList 对象中获取DocDetails 的列表。使用它获取 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,则会出现异常。
我如何验证它,即使它为空,我也需要将该属性名称添加到具有空值的列表中。有谁能帮帮我吗
【问题讨论】:
-
如果您使用 C# >= 6,则可以使用空条件运算符:
m.GetValue(doc, null)?.ToString(),对于旧版本,请使用临时变量和三元条件运算符。
标签: c# .net linq reflection