reflection(?)-检查类中每个属性/字段是否为空?我有一个简单的类:publicclassFilterParams{publicstringMeetingId{get;放;公共诠释?ClientId{得到;放;}publicstringCustNum{get;放;}publicintAttendedAsFavor{get;放;}publicint评级{得到;放;}publicstringComments{get;放;}publicintDelete{得到;放;如果它们不是null(int)或null/null(forstring),如何检查类中的每个属性,然后我将转换该属性的值并将其添加到列表中?谢谢。您可以使用LINQ来执行此操作:Listvalues=typeof(FilterParams).GetProperties().Select(prop=>prop.GetValue(yourObject,null)).Where(val=>val!=null).Select(val=>val.ToString()).Where(str=>str.Length>0).ToList();不是最好的方法,但大致是:假设obj是您的类的一个实例:Typetype=typeof(FilterParams);foreach(PropertyInfopiintype.GetProperties()){objectvalue=pi.GetValue(obj,null);if(value!=null&&!string.IsNullOrEmpty(value.ToString()))//dosomething}如果您没有很多具有太多属性的类,最简单的解决方案可能是编写一个迭代器块来检查并转换每个属性:publicclassFilterParams{//...publicIEnumerableGetValues(){if(MeetingId!=null)yieldreturnMeetingId;如果(ClientId.HasValue)yieldreturnClientId.Value.ToString();//...if(Rating!=0)yieldreturnRating.ToString();//...}}用法:FilterParamsfilterParams=...Listvalues=filterParams.GetValues().ToList();PropertyInfo[]properties=typeof(FilterParams).GetProperties();foreach(属性中的PropertyInfo属性){objectvalue=property.GetValue(SomeFilterParamsInstance,null);//preformchecksonvalueandetc.here..}这里是一个例子:){//添加到列表等}}你真的需要反射吗?实现像boolIsNull这样的属性是你的理由吗?你可以将它包装在像INullableEntity这样的接口中,并在每个需要此功能的类中实现它,显然如果类比较多,可能要坚持反射字段是null还是empty?所有内容分享,如果对你有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击维权联系管理员删除。如需转载,请注明出处:
