语法优化-多条件判断
2016-07-06 09:42
387 查看
结合项目
1.多参数
判断 条件
IsNull() 和 IsNullOrEmpry() 是拓展静态方法
使用如下
2.单一参数
改造前
改造后
无论多参数还是单一参数,都可以 以此思想拓展,合适你的需求即可。
1.多参数
判断 条件
//判断 var fileKey = new { DateStart = search.DateStart.IsNull(), //关开始时间 DateEnd = search.DateEnd.IsNull(), //结束时间 UserName = search.UserName.IsNullOrEmpty(), //用户名 NickName = search.NickName.IsNullOrEmpty(), //昵称 PhoneNumber = search.PhoneNumber.IsNullOrEmpty(), //电话号码 ProblemCatey = search.ProblemCatey.IsNullOrEmpty(), //问题种类 };
IsNull() 和 IsNullOrEmpry() 是拓展静态方法
/// <summary> /// 验证字符串是否为空字符串 /// </summary> /// <param name="self"></param> /// <returns></returns> public static bool IsNullOrEmpty(this string self) { if (self == null || self.Length == 0) { return true; } return false; }
使用如下
//查询 var list = from p in unitOfWork.FeedBack.Get(p => (fileKey.ProblemCatey || p.ProblemCatey.Contains(search.ProblemCatey))) join m in unitOfWork.Member.Get() on p.UserID equals m.Id where fileKey.UserName || m.UserName.Contains(search.UserName) where fileKey.NickName || m.NickName.Contains(search.NickName) where fileKey.PhoneNumber || m.PhoneNumber.Contains(search.PhoneNumber) where fileKey.DateStart || p.CreatedOn >= search.DateStart where fileKey.DateEnd || p.CreatedOn <= search.DateEnd select new FeedBackModelExd { Id = p.Id, ProblemCatey = p.ProblemCatey, CreatedOn = p.CreatedOn, UserName = m.UserName, NickName = m.NickName, PhoneNumber = m.PhoneNumber, Content = p.Content, };
2.单一参数
改造前
private static bool TraditionalVerify(int number) 2: { 3: if ((number > 0) && (number >= 10) && (number % 2 > 0) && (number * 2 > 100)) 4: { 5: return true; 6: } 7: return false; 8: }
改造后
8: private static bool UseFunc(int number) 9: { 10: var conditionlist = new List<Func<bool>>() 11: { 12: () => number > 0, 13: () => number >= 10, 14: () => number % 2 > 0, 15: () => number * 2 > 100 16: }; 17: 18: return conditionlist.TrueForAll(foo => foo.Invoke()); 19: }
无论多参数还是单一参数,都可以 以此思想拓展,合适你的需求即可。
相关文章推荐
- 如何在 Linux/Windows/MacOS 上使用 .NET 进行开发
- c#调用COM组件
- MySQL 优化
- Patrol 7 架构下?的处理方法
- 如何在 Linux 中安装微软的 .NET Core SDK
- Google排名优化的几个影响因素
- 中病毒后常用的解决方法病毒终极解决方案
- DB2优化(简易版)
- C#实现把指定数据写入串口
- C#动态创建button的方法
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- 一位架构师用服务打动客户的故事 推荐