2016-12-22 11 views
5

मैं निम्नलिखित वर्ग है: -जांच करें कि वर्ग की किसी भी संपत्ति शून्य है

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

मैं Json incomming के साथ मानचित्रण कर रहा हूँ: -

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

मैं अगर वर्ग के किसी भी संपत्ति की जांच करना चाहता था उपरोक्त मानचित्रण के बाद कोई मूल्य या बायां नल।

इसके लिए मैंने कोशिश की: -

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

लेकिन जब डिबगिंग मैंने पाया कि चाहे संपत्ति या अशक्त छोड़ हर बार नहीं यह मान सत्य देता है।

कृपया मेरी मदद करें Avoioding For/foreach लूप द्वारा मैं इसे कैसे प्राप्त कर सकता हूं।

उत्तर

12

आप जांच कर रहे हैं कि गुण स्वयं शून्य हैं (जो कभी भी सत्य नहीं होंगे), गुणों के मूल्य नहीं। बजाय इस का उपयोग करें:

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

यह काम किया चाल कर सकता .. केवल बदलने मैंने बनाया .. -> p.GetValue (objRequirement, नल) ... getValue विधि थी एक पैरामीटर नहीं ले रहा..यह दूसरे की मांग कर रहा था –

2

इस के लिए आप

objRequirement.GetType().GetProperties() 
.Where(pi => pi.GetValue(objRequirement) is string) 
.Select(pi => (string) pi.GetValue(objRequirement)) 
.Any(value => String.IsNullOrEmpty(value)); 
संबंधित मुद्दे