有没有办法检查特定的类成员是否为 null ?
我有一个具有 N 个属性(成员)的类。我必须为该类创建许多对象,并且可以为这些属性分配值。我正在使用 List 来存储所有对象。
现在,我想检查列表中特定索引中的对象是否有任何属性为 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()
我在这里看不到循环。