我们有一个场景,如果源和目标之间存在实体,我们应该合并目标中的数据,即从目标列为空的基础列中复制值。

我们正在使用 WCF 服务调用,并且我们有实体对象。

如果我有一个实体可以说 Staff ,员工包含名称等的基本属性,我们有 StaffAddressStaffEmailStaffPhone 的列表。

所以我只是想知道有没有办法使用 LINQ 或任何其他机制 - 我可以找到 Staff 对象上的属性列表,它们是 null 还是空白?

一种基本的方法当然是手动检查一个空白的属性?

最佳答案

这是使用 LINQ 的一种快速而肮脏的方法

public static IEnumerable<string> FindBlankFields(Staff staff)
{
    return staff.GetType()
        .GetProperties(BindingFlags.Instance | BindingFlags.Public |
            BindingFlags.NonPublic)
        .Where(p => p.CanRead)
        .Select(p => new { Property = p, Value = p.GetValue(staff, null) })
        .Where(a => a.Value == null || String.IsNullOrEmpty(a.Value.ToString()))
        .Select(a => a.Property.Name);
}

关于c# - 查找对象中的空白字段 - C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/522468/

10-14 10:41