C#扩展方法类库StringExtensions
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Globalization; using System.IO; using System.Web; using System.Web.UI.WebControls; using System.ComponentModel; using System.Reflection; using ECS.Utility; public static class StringExtensions { public static void BindEnumList(this CheckBoxList ddl, Type obj) { if (!obj.IsEnum) throw new Exception("value not enum!"); var itemArr = Enum.GetValues(obj); foreach (var item in itemArr) { ddl.Items.Add(new ListItem(item.ToString(), ((int)item).ToString())); } } public static void BindEnumList(this DropDownList ddl, Type obj) { if (!obj.IsEnum) throw new Exception("value not enum!"); var itemArr = Enum.GetValues(obj); foreach (var item in itemArr) { ddl.Items.Add(new ListItem(item.ToString(), ((int)item).ToString())); } } public static void BindEnumDescriptionList(this DropDownList ddl, Type obj) { if (!obj.IsEnum) { throw new ArgumentException("enumItem requires a Enum "); } var itemArr = Enum.GetValues(obj); string[] names = Enum.GetNames(obj); FieldInfo fieldInfo; object[] attributes; DescriptionAttribute descriptionAttribute; foreach (string name in names) { fieldInfo = obj.GetField(name); attributes = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); var value = (int)fieldInfo.GetValue(typeof(string)); if (attributes.Length > 0) { descriptionAttribute = attributes.First() as DescriptionAttribute; if (descriptionAttribute != null) { ddl.Items.Add(new ListItem(descriptionAttribute.Description, value.ToString())); } } } } public static int ToInt(this string value) { return Int32.Parse(value); } public static int ToInt(this string value, int defaultValue) { var result = defaultValue; return int.TryParse(value, out result) ? result : defaultValue; } public static int? ToNullableInt(this string value) { int result; if (string.IsNullOrEmpty(value) || !int.TryParse(value, out result)) { return null; } return result; } public static decimal ToDecimal(this string value) { return decimal.Parse(value); } public static decimal ToDecimal(this string value, decimal defaultValue) { var result = defaultValue; return decimal.TryParse(value, out result) ? result : defaultValue; } public static decimal ToRoundDecimal(this string value, decimal defaultValue, int decimals) { var result = defaultValue; result = Math.Round(decimal.TryParse(value, out result) ? result : defaultValue, decimals); return result; } public static decimal? ToNullableDecimal(this string value) { decimal result; if (string.IsNullOrEmpty(value) || !decimal.TryParse(value, out result)) { return null; } return result; } public static short? ToNullableShort(this string value) { short result; if (string.IsNullOrEmpty(value) || !short.TryParse(value, out result)) { return null; } return result; } public static DateTime? ToNullableDateTime(this string value) { DateTime result; if (DateTime.TryParse(value, out result)) { return result; } return null; } public static DateTime ToDateTime(this string value) { return DateTime.Parse(value); } public static byte? ToNullableByte(this string value) { byte result; if (string.IsNullOrEmpty(value) || !byte.TryParse(value, out result)) { return null; } return result; } public static bool? ToNullableBool(this string value) { bool result; if (string.IsNullOrEmpty(value) || !bool.TryParse(value, out result)) { return null; } return result; } public static bool ToBool(this string value) { return bool.Parse(value); } /// <summary> /// 去掉字符串中的html /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToNoHtmlString(this string value) { return Util.StripHTML(value).Trim(); } }
C#扩展方法类库StringExtensions的更多相关文章
- 开源且功能强大的C# 扩展方法类库Pure.Ext,包含1000+个拓展方法 (支持.Net Framework和.Net Core)
先上地址 Github: https://github.com/purestackorg/pure.ext Gitee: https://gitee.com/purestack/pure.ext 扩展 ...
- C#秘密武器之扩展方法
原文:C#秘密武器之扩展方法 为何要用扩展方法? 作为一个.NET程序猿,我们经常要跟.net自带类库或者第三方dll类库打交道,有时候我们未必能够通过反编译来查看它们的代码,但是我们通常需要给它们扩 ...
- 【原创】开源Math.NET基础数学类库使用(12)C#随机数扩展方法
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 开源Math.NET基础数学类库使用(12)C#随机数扩展方法
原文:[原创]开源Math.NET基础数学类库使用(12)C#随机数扩展方法 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...
- 【开源】OSharp框架解说系列(3):扩展方法
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- .NET 扩展方法 (一)
我还记得刚刚学编程的时候,老师经常会提到一句话:注意空指针.所以经常在某些“入口”位置,进行代码校验,空指针的判断就是其中的一项工作. string类型作为常用的数据类型,它在项目中出现的机率极高,所 ...
- .NET 扩展方法 (二)
上一篇随笔 .NET 扩展方法 (一) 已经对 扩展方法有了大致的介绍,这篇算是一个补充,让我们来看一下扩展方法的几个细节: 一.扩展方法具有继承性 当使用扩展方法扩展一个类型的时候,其也扩展了派生类 ...
- 再谈扩展方法,从string.IsNullOrEmpty()说起
string.IsNullOrEmpty()这个方法算得上是.net中使用频率最高的方法之一.此方法是string的一个静态方法,类似的静态方法在string这个类中还有很多.那么这样的方法作为静态方 ...
- .NET开发中经常用到的扩展方法
整理一下自己经常用到的几个扩展方法,在实际项目中确实好用,节省了不少的工作量. 1 匿名对象转化 在WinForm中,如果涉及较长时间的操作,我们一般会用一个BackgroundWorker来做封装 ...
随机推荐
- Ubuntu14.04 命令行下安装teamviewer
下载teamviewer 链接:https://pan.baidu.com/s/1hs0BppM 密码:sdmk 上传到 /home/[user] cd /home/[user] 移动安装包到 /o ...
- Spring整合quartz框架实现任务定时调度
1. 首先需要引入需要的jar包,如上图所示. 2. 编写需要定时调度的测试类: package com.jp.task; import java.util.Date; public class T ...
- 在eclipse的配置文件里指定jdk路径
在eclipse的配置文件里指定jdk路径,只需在eclipse的配置文件里增加-vm参数即可. 打开eclipse目录下的eclipse.ini配置文件,增加-vm配置,需要注意的是该参数要加在-v ...
- 移植cjson到windows下编译
#起因 在工作过程中发现需要让Lua支持json库,如果直接用lua版本的json解析器的话效率不够高,所以找了一个用C实现的json库--cjson,据说此库比lua版本的效率高10-20倍.但是c ...
- centos7下安装apache服务器httpd的yum方式安装
转自Clement-Xu的csdn博客 http://blog.csdn.net/clementad/article/details/41620631 Apache在Linux系统中,其实叫&qu ...
- vagrant启动报错The following SSH command responded with a no
vagrant package打包生成box,以这个box为基础模板,打造vagrant环境,启动vagrant报错 angel:vagrant $ vagrant up Bringing machi ...
- dnspython模块安装
wget http://www.dnspython.org/kits/1.12.0/dnspython-1.12.0.tar.gz tar -zxvf dnspython-1.12.0.tar.gz ...
- 【国家集训队2010】小Z的袜子[莫队算法]
[莫队算法][国家集训队2010]小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程, ...
- EntityFrameWork实现部分字段获取和修改(含源码)
EntityFrameWork类库,是微软推出的ORM组件,它是基于Ado.Net的,个人感觉还是非常 好用的.以下介绍的2个功能点分别是部分字段更新和获取 解决部分字段Update.本方案采用仓储模 ...
- Tomcat启动出现:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvc]]解决办法
严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component ...