0

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

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

现在,我想检查列表中特定索引中的对象是否有任何属性为 null 或未设置?这可以在不使用循环或手动检查每个属性的情况下完成吗?

提前致谢..

4

4 回答 4

3

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

var output = listA.Where(a => typeof (A).GetProperties()
                                        .Any(p => p.GetValue(a) == null))
            .Select((a, index) => index)
            .ToList();
于 2012-08-22T18:29:00.523 回答
0

以下是如何检查索引中的项目是否具有任何null属性:

var item = myItems[indexToCheck];
bool hasNullProperty = typeof(MyClass)
    .GetProperties()
    .Any(p => p.GetValue(item) == null);
于 2012-08-22T18:45:42.453 回答
-1

它可能需要一些工作,但这里是您可以使用的一般功能。老实说,我不确定这是否违反了您不使用循环/单独检查每个成员的限制(看看它是如何做到的)。

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;
}
于 2012-08-22T18:23:20.797 回答
-2

listOfObjects[i].HaveAnyOfPropertiesNullOrNotSet()

我在这里看不到循环。

于 2012-08-22T18:15:23.087 回答