If 判断 如何简化?

问题描述

判断字段为空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?就无需做空值判断!
解决方案十二:

在该字段上排序,然后二分查找,定位后遍历赋值

时间: 2024-10-26 09:55:07

If 判断 如何简化?的相关文章

设计模式(8)-状态模式(关注状态之间的变化)

状态模式(State Pattern)是设计模式的一种,属于行为模式. 定义(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化. 意图:允许一个对象在其内部状态改变时改变它的行为 适用场景: 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为. 2.一个操作中含有庞大的多分

【机房合作】状态模式与上机

在机房收费系统中,有几个业务逻辑是比较复杂的,比如说上机.下机.记得我在做第一版VB收费系统的时候,还特别地将上下机拿出来画了一个完整的流程图,要不这样做的话,最后的结果一定是懵了,也不想再继续写代码了. 在进行设计模式的学习之前,我们很有必要将上机这一业务逻辑完整的梳理一遍. 一.上机业务逻辑 1.判断卡号是否存在 2.判断卡号是否使用 3.判断卡号余额是否充足 4.判断卡号是否正在上机 5.执行上机,添加上机记录 这样一罗列,很明显,执行上机这一业务操作需要先经过四次判断.之前我们都是通过一

大话设计模式:(序)

            设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样.     创新型模式: 创建型模式隐藏了这些类的实例是如何被创建和放在一起,整个系统关于这些对象所知道的是由抽象类所定义的接口.这样,创建型模式在创建了什么.谁创建它.它

策略模式的孪生兄弟——对状态模式的深度复习总结

俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及的总结知识点如下: 和策略模式的比较 状态模式概念和例子 应用场景 责任链模式和状态模式对比 一种代码优化的思路 java.util.Iterator里也有状态模式的影子 状态模式的优缺点 有限状态机及其应用 前面有总结--策略模式,之前早就觉得策略和状态设计模式有一些相似-- 接口的常用用法都有什么?策略设计模式复习总结 我知道策略模式是对象的行为模式,其实就是对一系列级别平等的算法的封装,它不关心算法实现,让客户端去动态的

[Head First设计模式]生活中学设计模式——状态模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

第20章 状态模式(State Pattern)

原文 第20章 状态模式(State Pattern) 状态模式        概述:           当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.         状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化.        意图:          允许一个对象在其内部状态改变时改变它的行为        结构图:                 举例:      

设计模式中的撩妹神技--下篇

     开篇前言 遇一人白首,择一城终老,是多么美好的人生境界,她和他历经风雨慢慢变老,回首走过的点点滴滴,依然清楚的记得当初爱情萌芽的模样,时维十一月,眼看着光棍节就那么轻轻的来了,没有预告,没有准备`(*∩_∩*)′,是否想在双十一摆脱单身,和亲爱的ta牵手漫步,在寒风中紧紧相拥,都说艺术来源于生活,却高于生活,作为人类智慧的结晶设计模式,她蕴藏着丰富的撩妹技术,今天这篇博文,小编主要介绍状态模式中的撩妹神技.        什么是状态模式 当一个对象的内在状态改变时允许改变其行为,这个对

Spark技术内幕: Task向Executor提交的源码解析

在上文<Spark技术内幕:Stage划分及提交源码分析>中,我们分析了Stage的生成和提交.但是Stage的提交,只是DAGScheduler完成了对DAG的划分,生成了一个计算拓扑,即需要按照顺序计算的Stage,Stage中包含了可以以partition为单位并行计算的Task.我们并没有分析Stage中得Task是如何生成并且最终提交到Executor中去的. 这就是本文的主题. 从org.apache.spark.scheduler.DAGScheduler#submitMissi

解析C++编程中如何使用设计模式中的状态模式结构_C 语言

作用:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. UML图如下: State类,抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为. ConcreteState类,具体状态,每一个子类实现一个与Context的一个状态相关的行为. Context类,维护一个ConcreteState子类的实例,这个实例定义当前的状态. 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把