问题描述
判断字段为空Empty时进行赋值,不空的话就不管他(赋值)如何写?不使用三元表达式或者IF的话如何能简化如下的代码:if(string.IsNullOrEmpty(dr["sbzt"].ToString()))dr["sbzt"]=0;主要的问题就是如何最简单方便的实现上面的逻辑,为空赋值,不为空不做处理?如果要封装该如何封装。请高手指教!
解决方案
解决方案二:
dr["sbzt"]==null?dr["sbzt"]=0:dr["sbzt"]=dr["sbzt"];
解决方案三:
三元运算符就挺合适的dr["sbzt"].ToString()==""?"":dr["sbzt"].ToString();
解决方案四:
但是三元运算符需要写两遍dr["sbzt"]这个稍微有点麻烦。。想看看还有更简单的额么。
解决方案五:
dr["sbzt"]究竟存的是什么类型?
解决方案六:
是int类型
解决方案七:
解决方案八:
写个扩展类不就行了publicstaticstringGetDbNullWhileNull(thisstringobj,stringdefaultValue){returnstring.IsNullOrWhiteSpace(obj)?defaultValue:obj;}
解决方案九:
int.TryParse(dr["sbzt"].ToString(),outdr["sbzt"]);一行搞定,哈哈,实现的目标是一致的,只是你说的不空不管,在这儿不是。
解决方案十:
引用7楼starfd的回复:
写个扩展类不就行了publicstaticstringGetDbNullWhileNull(thisstringobj,stringdefaultValue){returnstring.IsNullOrWhiteSpace(obj)?defaultValue:obj;}
+1
解决方案十一:
引用5楼UnStopable的回复:
是int类型
本是天天打交道的值类型,今天到这儿反倒有点怀疑了,特地查阅了一下msdn,你将其转为string后在进行IsNullOrEmpty或IsNullOrWhiteSpace是没有任何意义的,int只能是正数、负数或0,不可为空,转为字符串也不可能是Empty。http://msdn.microsoft.com/zh-cn/library/1t3y8s4s(v=vs.80).aspx所以你做那样的判断没有任何意义,如果真遇到Null你的ToString()早就异常了。结论:不用画蛇添足,不是int?就无需做空值判断!
解决方案十二:
在该字段上排序,然后二分查找,定位后遍历赋值