在项目中很多时候都会对字符串和集合做特定的处理。而且很多地方都会去调用。为了解决这些问题。我们通常会在项目中吧这些方法提成公共方法。下面是自己总结的项目中用到的一些扩展方法。封装成了一个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 扩展方法集合.的更多相关文章

  1. 译:泛型List集合转化为DateTable的扩展方法

    译文出处:http://www.codeproject.com/Tips/867866/Extension-Method-for-Generic-List-Collection-to-Da 这段代码是 ...

  2. C#中DataTable与实体集合通用转换(使用扩展方法)

    本案例提供了:把DataRow转换为单个实体.dataTable转换为List泛型支持时间格式转换. 下文的方法都是扩展方法.扩展方法要求写在静态类中,方法也要静态. 它必须在一个非嵌套.非泛型的静态 ...

  3. C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询

    1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...

  4. List<Object>对象集合一些扩展方法

    // 商品集合信息            List<Product> list = new List<Product>()            {               ...

  5. 【转】给DataTable和DataRow扩展方法,直接转换为对象集合或对象

    /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为对象集合或对象 /// 补充说明:此扩展类可以极大的简化操作,但是性能低下,大数据以 ...

  6. C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数

    一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...

  7. C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法

    1.自动属性(Auto-Implemented Properties) //以前的写法 .net2.0 private string _userName; public string UserName ...

  8. 关于.NET中迭代器的实现以及集合扩展方法的理解

    在C#中所有的数据结构类型都实现IEnumerable或IEnumerable<T>接口(实现迭代器模式),可以实现对集合遍历(集合元素顺序访问).换句话可以这么说,只要实现上面这两个接口 ...

  9. C#的扩展方法解析

    在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...

随机推荐

  1. [Asp.net 5] DependencyInjection项目代码分析-目录

    微软DI文章系列如下所示: [Asp.net 5] DependencyInjection项目代码分析 [Asp.net 5] DependencyInjection项目代码分析2-Autofac [ ...

  2. 基于Metronic的Bootstrap开发框架经验总结(10)--优化Bootstrap图标管理

    在基于Bootstrap开发的项目中,鲜艳颜色的按钮,以及丰富的图表是很吸引人的特点,为了将这个特点发挥到极致,可以利用Bootstrap图标抽取到数据库里面,并在界面中进行管理和使用,这样我们可以把 ...

  3. 初入网络系列笔记(3)HTTP协议最简单的掌握

    一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...

  4. iOS学习笔记——键盘处理

    在网上找到的资料比较零散,这部分学起来感觉也有点空虚,内容就只包括隐藏键盘和键盘高度两部分 隐藏键盘其实就在我学习iOS开发的第一个程序里面已经实践过了,不过当时还懵懵懂懂,现在就了解了是什么一回事, ...

  5. web api中的RouteHandler

    ASP.NET MVC4中引入的Web API可以说是进行REST软件开发的利器(个人意见),但是最近在web form中混入web api时,发现一个问题:由于以前的web form项目中,使用到了 ...

  6. img在div中居中的问题

    Img是内联元素,要设置其margin属性使其居中,就要将其转换为块元素display:block;然后利用margin:0 auto;实现图片的水平居中:(有的设计师为图片再加个div标签,然后通过 ...

  7. linux 下添加库的加载路径的方式

    linux 下有两种添加加载库路径的方式: 1.修改环境变量: export LD_LIBRARY_PATH=path_name 2.修改配置文件 修改 /etc/ld.so.conf 的内容在最后添 ...

  8. ASP.NET MVC搭建项目后台UI框架—9、服务器端排序

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...

  9. JavaScript基本语法(二)

    上篇博文写到JavaScript的数据类型.JavaScript包括了字符串(String).数字(Number).布尔(Boolean).数组(Array).对象(Object).空(Null).未 ...

  10. UI笔记

    tableView 自定义cell 还有之前的轮播图整理