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

2023-11-23

我有一个对象,我们称之为ObjectA,该对象有 10 个都是字符串的属性。

var myObject = new {Property1="",Property2="",Property3="",Property4="",...}

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

任何内置方法会返回 true 或 false?

如果其中任何一个不为 null 或空,则返回 false,如果全部为空,则返回 true。

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


您可以使用反射来做到这一点

bool IsAnyNullOrEmpty(object myObject)
{
    foreach(PropertyInfo pi in myObject.GetType().GetProperties())
    {
        if(pi.PropertyType == typeof(string))
        {
            string value = (string)pi.GetValue(myObject);
            if(string.IsNullOrEmpty(value))
            {
                return true;
            }
        }
    }
    return false;
}

马修·沃森(Matthew Watson)建议使用另一种方法LINQ:

return myObject.GetType().GetProperties()
    .Where(pi => pi.PropertyType == typeof(string))
    .Select(pi => (string)pi.GetValue(myObject))
    .Any(value => string.IsNullOrEmpty(value));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查对象的所有属性是否为 null 或为空? 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • ServerManager 如何获取站点在磁盘上的物理路径?

    如何获取磁盘上站点的物理路径 using ServerManager serverManager new ServerManager var sites serverManager Sites foreach Site site in si
  • 目前最好的垃圾邮件过滤算法

    目前检测垃圾邮件的最佳方法是什么 尤其是手机短信 有资源或者比较分析吗 研究监督学习技术是件好事 多项研究表明 多项式朴素贝叶斯分类器已被用于垃圾邮件过滤 并取得了巨大成功 如果它适用于垃圾邮件过滤 那么它也应该适用于短信过滤 您需要的是一
  • Flutter - 错误:没有为该类定义 getter X

    我有课TripController包含私有字段 updatedAccount 我创建了一个吸气剂以便从外部获取 class TripController final String accountId final BuildContext c
  • 为什么“代数数据类型”在名称中使用“代数”?

    当我学习 Scala Haskell 时 我看到有一个概念代数数据类型 我已经阅读了维基百科的解释 但我仍然有一个问题 为什么它的名称中使用 代数 一词 它和 代数 有什么关系吗 简而言之 我们必须考虑代数和类型之间的关系 Haskell
  • 使用 Jest 和 @testing-library/react-native 测试 React Native 项目时出现“SyntaxError:无法在模块外部使用 import 语句”错误?

    每当我跑步时都会遇到错误npm test FAIL App test js 测试套件运行失败 Jest encountered an unexpected token This usually means that you are tryi
  • 将对象从 Activity 传递到 Fragment

    我有一个Activity它使用一个Fragment 我只是想从中传递一个对象Activity to the Fragment 我怎样才能做到呢 到目前为止我见过的所有教程都是从资源中检索数据 EDIT 让我们更精确一点 我的活动有一个Lis
  • Android Studio 3.0 beta2

    当我构建项目时 出现以下错误 错误 com android builder merge DuplicateRelativeFileException 在操作系统独立路径 META INF app debug kotlin module 中找
  • 如何使用 sf 按因子构建/绘制多边形的凸包?

    我有一个物种出现的数据集 我试图通过制作凸包将其转换为出现的区域 我可以手动执行此操作 即一次一个物种 但我真的很希望能够通过物种名称自动处理它 可以在此处找到精简的示例数据集 https pastebin com dWxEvyUB 这是我
  • CSS 中的文本替换属性如何工作?

    我正在参加 upwork 考试 在那里我得到了以下问题 考虑以下代码 body text replace a b b c 如果实现文本替换样式 以下字符串的输出是什么 安迪住在咖啡馆后面 ndy 住在 CBFE 后面 辛迪住在 ccfe 后
  • 使用 Ant 预编译 JSP 的最佳方法是什么

    我试图找出使用 Ant 预编译将部署到 Oracle 应用服务器的 JSP 的最佳方法 即使我正在部署到 Oracle 应用程序服务器 我也想避免使用 Oracle 版本的 Ant Oracle 的 JSP 编译器位于 ORACLE HOM
  • 如何修改android主/详细活动中的虚拟内容?

    我将修改 eclipse 在主 详细模式中生成的项目 我找不到办法做到这一点 特别是 我会从 xml res values arrays 资源文件中获取项目 这是java文件 package com ga termeapp dummy im
  • 如何将String对象转换为Date对象? [复制]

    这个问题在这里已经有答案了 如何将 String 对象转换为 Date 对象 我想我需要做这样的事情 Date d some conversion String 任何帮助将不胜感激 SimpleDateFormat dateFormat n
  • 使用 HTML / UTF-8 字符作为光标

    我希望能够在图像悬停时使用双箭头字符作为光标 我可以只添加图像作为自定义光标吗 cursor url images my cursor png auto http designerstoolbox com designresources h
  • NodeJS Einaros WS 连接超时

    我在用埃纳罗斯WS模块与Node JS在一台计算机上 server 当我使用另一个连接时它工作正常 client 电脑 如果我插入网络电缆 ws on close function 没有解雇 我正在寻求建议是否 我必须实现我自己的 ping
  • 具有释放/获取语义的易失性

    从 Java 5 开始 volatile关键字具有释放 获取语义 以使副作用对其他线程可见 包括对非易失性变量 以这两个变量为例 int i volatile int v 注意i是一个常规的 非易失性变量 想象一下线程 1 执行以下语句 i
  • HOLDLOCK 与 UPDLOCK

    它似乎使用HOLDLOCK or UPDLOCK在一个事务 例如 T1 中 不会阻止来自另一个事务 例如 T2 的读取访问 据我了解 直到T1完成 HOLDLOCK将阻止 T2 更新 删除 和一个UPDLOCK将阻止 T2 进行更新 删除
  • 如何使用 React hooks 将 props 同步到 state:setState()

    我正在尝试使用组件接收的 props 使用 React hook setState 设置状态 我尝试使用下面的代码 import React useState useEffect from react const Persons props
  • 使用比核心数量更多的工作进程

    ThisPYMOTW 的示例给出了使用的示例multiprocessing Pool 哪里的processes传递的参数 工作进程数 是机器上核心数的两倍 pool size multiprocessing cpu count 2 否则该类
  • Celery 3.1.9 Django 集成,指定设置文件,不使用 djcelery

    我今天开始将 celery 3 1 9 与 Django 一起使用 这个较新的版本与 django 具有更紧密的集成 无需使用 django celery 我使用多个设置文件 我想知道是否有一种简单的方法来指定初始化时使用哪个设置文件cel
  • 如何检查对象的所有属性是否为 null 或为空?

    我有一个对象 我们称之为ObjectA 该对象有 10 个都是字符串的属性 var myObject new Property1 Property2 Property3 Property4 是否有办法检查所有这些属性是否为 null 或为空