有没有办法检查特定的类成员是否为空?
我有一个包含N个属性(成员)的类。我必须为类创建许多对象,并可以为这些属性分配值。我使用List来存储所有对象。
现在,我想检查列表中特定索引中的对象是否具有null或未设置的任何属性?这可以在不使用循环或手动检查每个属性的情况下完成吗?
提前致谢..
答案 0 :(得分:3)
假设您有A
,listA
类型的项目列表。下面是一个LINQ表达式,它将查找列表中所有属性设置为null
的项目:
var output = listA.Where(a => typeof (A).GetProperties()
.Any(p => p.GetValue(a) == null))
.Select((a, index) => index)
.ToList();
答案 1 :(得分:0)
以下是检查索引中的项目是否具有null
属性的方法:
var item = myItems[indexToCheck];
bool hasNullProperty = typeof(MyClass)
.GetProperties()
.Any(p => p.GetValue(item) == null);
答案 2 :(得分:-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;
}
答案 3 :(得分:-2)
listOfObjects [I] .HaveAnyOfPropertiesNullOrNotSet()
我在这里看不到循环。