本文介绍了检查class的任何属性是否为null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下课程:-

  public class要求
{
public string EventMessageUId {get ;组; }
公用字串ProjectId {get;组; }
public List< Message>讯息{get;组; }
}

我使用传入的Json映射它:-

  Requirements objRequirement = JsonObject.ToObject< Requirements>(); 

我想检查上述映射后class的任何属性是否没有值或为空。



为此我尝试了:-

  bool isNull = objRequirement.GetType( ).GetProperties()。All(p => p!= null); 

但是在调试时,我发现属性是否在每次赋值为true时都为Null。 p>

请帮助我如何通过<$ / $ foreach 循环来实现这一目标。

解决方案

您正在检查属性自身是否为null(永远不会为真),而不是属性的值。改用它:

  bool isNull = objRequirement.GetType()。GetProperties()
.All(p => ; p.GetValue(objRequirement)!= null);


I have following class:-

public class Requirements
    {
        public string EventMessageUId { get; set; }
        public string ProjectId { get; set; }
        public List<Message> Message { get; set; }
    }

I am mapping it with incomming Json:-

Requirements objRequirement = JsonObject.ToObject<Requirements>();

I wanted to check if any property of class has no value or left null after above mapping.

For this I tried :-

bool isNull= objRequirement.GetType().GetProperties().All(p => p != null);

But while debugging I found that whether property left Null or not each time it gives value true.

Please help me how can I achieve this by Avoioding For/foreach loop.

解决方案

You're checking if the properties themselves are null (which will never be true), not the values of the properties. Use this instead:

bool isNull = objRequirement.GetType().GetProperties()
                            .All(p => p.GetValue(objRequirement) != null);

这篇关于检查class的任何属性是否为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-26 11:18