如何检查一个对象的所有属性是否为空或为null?

100
我有一个对象,让我们称之为ObjectA,该对象有10个属性,都是字符串。
var myObject = new {Property1="",Property2="",Property3="",Property4="",...}

有没有办法检查所有这些属性是否为null或空?

是否有任何内置方法可返回true或false?

如果它们中的任何一个不为null或空,则返回值应为false,如果它们全部为空,则应返回true。

我只想避免编写10个if语句来检查每个属性是否为空或null。


4
尝试使用反射。 - Ondrej Janacek
1
反射,但是要问问自己...那个数据结构是否是一个好的方法?似乎 myObject 真的只是一个数组。 - CodingIntrigue
3
在网站开发中,我有一个视图模型(搜索过滤器),当所有过滤器为空时,Linq语句会从数据库中返回所有结果。我想到了这样一个想法,如果这些过滤器从视图模型中返回为空,则不应用过滤器。但是写十个if else听起来并不好。 - akd
这个问题真的很令人困惑和模糊。您是在询问检查它们是否全部为 null?全部为空?没有为 null?没有为空?全部为 null 或空?没有为 null 或空? - Caltor
11个回答

0
在我的情况下,所有的属性都是可空的,我必须检查是否全部为空,所以我进行了计数比较,并创建了这个扩展方法:
public static bool IsObjectNull(this object obj)
{
  return obj.GetType().GetProperties().Count() == obj.GetType().GetProperties().Where(x => x.GetValue(obj) == null).Count();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接