.Net 扩展方法集合.
在项目中很多时候都会对字符串和集合做特定的处理。而且很多地方都会去调用。为了解决这些问题。我们通常会在项目中吧这些方法提成公共方法。下面是自己总结的项目中用到的一些扩展方法。封装成了一个Library放到github上.
https://github.com/FourLeafClover/LightWeight.Extensions
不多说我们来看看扩展的一些方法吧.
public static void Main(string[] args)
{
#region String Extensions string result0 = "[frank%loch".StringConvert4SQLLke(); //替换sql模糊匹配的时候里面的特殊字符
bool result1 = " abC".CurrentTrimEqualsIgnoreCase(" ABC "); // 比较两字符串是否相同,忽略大小写,字符串前后空白
List<string> result2 = "1-23@56*78".SplitByMutipleChar('-','@','*').ToList(); //多字母拆分字符串, 输出 { 1 23 56 78 }的集合
bool result3 = "".IsNullOrEmpty(); // 判断字符串是否为null或者string.empty.
bool result4 = "".IsLengthBetween(, );
bool result5 = "".IsShorterThan();
bool result6 = "".IsLongerThan();
bool result7 = "You are the best".IsContainsAll("You", "the");// result==true,result8==false IsContainsAll 支持多参数输入. 用于判断字符串是否同时包含多个字符串
bool result8 = "You are the best".IsContainsAll("You", "");
bool result9 = "You are the best".IsContainsAny("", "the"); //result==true,result8==false IsContainsAll 支持多参数输入. 用于判断字符串是否包含多个字符串中的一个 bool result10 = "You are the best".IsContainsAny("sbc", "");
string result11 = "frank".FirstCharToUpter();
string result12 = " frank ".RTrim(); // 去除字符串右边的空白
string result13 = " frank ".LTrim(); // 去除字符串左边空白
string result14 = new List<string>() { "frank", "loch", "hardy" }.ListToSqlIn(false); //用于sql里面的in(x,x,x)语句拼接
string result15 = new List<string>() { "", "", "" }.ListToSqlIn(true); // result12 = "'frank','loch','hardy'",result12 = "1,2,3"
bool result16 = "frank".IsEqualsAnyOfThem("hardy", "frank"); // IsEqualsAnyOfItem支持多参数输入,判断字符串是否在多个删除里面 #endregion #region ConvertExtensions // 用于string类型转换int,decimal,datetime int result17 = "abc".TryToInt32();
int result18 = "".TryToInt32(); decimal result19 = "1.3".TryToDecimal();
DateTime result20 = "2015/12/24".TryToDateTime(); #endregion #region ObjectExtensions Person p1 = new Person() { Name = "Frank" };
Person result21 = p1.DeepCopy<Person>(); // 深拷贝 #endregion #region List<string> lst = new List<string>() { "", "" };
bool result22 = lst.IsNullOrEmpty(); //判断集合是否有内容
bool result23 = lst.CountGreaterThanZero(); List<Person> personList1 = new List<Person>()
{
new Person(){Name="Frank"},
new Person(){Name="Hardy"}
}; List<Person> personList2 = new List<Person>()
{
new Person(){Name="Frank"},
new Person(){Name="Hardy"}
};
///public static bool ObjectCollectionEquals<T>(this IEnumerable<T> collection1, IEnumerable<T> collection2, Func<T, T, bool> func),
/// func里面写入两个对象相同的方法.实现集合对象的比较
bool result24 = personList1.ObjectCollectionEquals(personList2, (val1, val2) =>
{
return val1.Name != val2.Name;
}); #endregion } [Serializable]
public class Person
{
public string Name { get; set; }
}
PS:代码都很简单. 就不剖析了. 各位博友谁还有比较常用的扩展方法都可以提出来. 我好更新到github上.这样可以不断的去完善这个library.
.Net 扩展方法集合.的更多相关文章
- 译:泛型List集合转化为DateTable的扩展方法
译文出处:http://www.codeproject.com/Tips/867866/Extension-Method-for-Generic-List-Collection-to-Da 这段代码是 ...
- C#中DataTable与实体集合通用转换(使用扩展方法)
本案例提供了:把DataRow转换为单个实体.dataTable转换为List泛型支持时间格式转换. 下文的方法都是扩展方法.扩展方法要求写在静态类中,方法也要静态. 它必须在一个非嵌套.非泛型的静态 ...
- C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询
1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...
- List<Object>对象集合一些扩展方法
// 商品集合信息 List<Product> list = new List<Product>() { ...
- 【转】给DataTable和DataRow扩展方法,直接转换为对象集合或对象
/// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为对象集合或对象 /// 补充说明:此扩展类可以极大的简化操作,但是性能低下,大数据以 ...
- C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数
一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...
- C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
1.自动属性(Auto-Implemented Properties) //以前的写法 .net2.0 private string _userName; public string UserName ...
- 关于.NET中迭代器的实现以及集合扩展方法的理解
在C#中所有的数据结构类型都实现IEnumerable或IEnumerable<T>接口(实现迭代器模式),可以实现对集合遍历(集合元素顺序访问).换句话可以这么说,只要实现上面这两个接口 ...
- C#的扩展方法解析
在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...
随机推荐
- 【转】 App架构设计经验谈:接口的设计
App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用RESTful架构,RESTFul最重要的 ...
- mysql 处理 NULL
1.如果为空返回0 select ifnull(null,0) 2.如果为空返回0,否则返回1 select if(isnull(col),0,1) as col. MYSQL 中的IFNULL函数 ...
- 设计模式(二)简单工厂模式(Simple Factory Pattern)
一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式. 二.简单工厂 ...
- NIOS II 中直接调用Modelsim仿真
STEP1:创建一个工程,实现并编译该工程,编写TestBench文件. STEP2:设置启动Modelsim的路径 选择Nios II菜单Tools->Options..,在弹出的界面中,选择 ...
- 【读书笔记】2016.11.19 北航 《GDG 谷歌开发者大会》整理
2016.11.19 周六,我们在 北航参加了<GDG 谷歌开发者大会>,在web专场,聆听了谷歌公司的与会专家的技术分享. 中午免费的午餐,下午精美的下午茶,还有精湛的技术,都是我们队谷 ...
- Atitit利用反射获取子类 集合 以及继承树
Atitit利用反射获取子类 集合 以及继承树 想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类. Eclipse实现不是重父类开始找而是重子类往回 ...
- [Cordova] Plugin开发架构
[Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...
- jquery动态改变div宽度和高度
效果体验:http://keleyi.com/keleyi/phtml/jquery/23.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD X ...
- C#枚举、结构、数组、排序
- 【翻译】jQuery是有害的
原文:http://lea.verou.me/2015/04/jquery-considered-harmful/**(第一次翻译,望大家多批评指正) jQuery是有害的 嗨,我总想写一个“X”是有 ...