繁体   English   中英

检查对象列表中的类成员是否为空

[英]Check whether class members are null from Object list

有没有办法检查特定的类成员是否为null?

我有一类具有N个属性(成员)的类。 我必须为该类创建许多对象,并可能为这些属性分配值。.我正在使用列表存储所有对象。

现在,我要检查列表中特定索引中的对象是否具有其任何属性为null或未设置? 无需使用循环或手动检查每个属性就可以完成此操作吗?

提前致谢..

假设您具有A类型的列表listA 下面是一个LINQ表达式,它将查找列表中所有属性设置为null所有项目:

var output = listA.Where(a => typeof (A).GetProperties()
                                        .Any(p => p.GetValue(a) == null))
            .Select((a, index) => index)
            .ToList();

这是检查索引项是否具有null属性的方法:

var item = myItems[indexToCheck];
bool hasNullProperty = typeof(MyClass)
    .GetProperties()
    .Any(p => p.GetValue(item) == null);

它可能需要一些工作,但是这里是您可以使用的常规功能。 老实说,我不确定这是否违反您的限制,即您不使用循环/单独检查每个成员(请参见如何同时执行)。

public static bool AreAnyPropertiesNull(object obj)
{
    foreach (var prop in obj.GetType().GetProperties())
    {
        object propertyValue = prop.GetValue(obj, null);
        if (propertyValue == null)
            return true;
    }
    return false;
}

listOfObjects [i] .HaveAnyOfPropertiesNullOrNotSet()

我在这里看不到循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM