zoukankan      html  css  js  c++  java
  • Farseer.net轻量级开源框架 中级篇:常用的扩展方法

    导航

    目   录:Farseer.net轻量级开源框架 目录

    上一篇:Farseer.net轻量级开源框架 中级篇: BasePage、BaseController、BaseHandler、BaseMasterPage、BaseControls基类使用

    下一篇:Farseer.net轻量级开源框架 中级篇: 常用工具

      在使用框架的时候,都需要引用扩展方法的命名空间:using FS.Extend;

    1         /// <summary>
    2         /// 将值转换成类型对像的值(此方法作为公共的调用,只支持单值转换)
    3         /// </summary>
    4         /// <param name="objValue">要转换的值</param>
    5         /// <param name="objType">要转换的值类型</param>
    6         /// <param name="defType">转换失败时,代替的默认值类型</param>
    7         /// <returns></returns>
    8         private static object ConvertType(object objValue, Type objType, Type defType)

      作者在写代码的时候,最常用的到的方法就属ConvertType了。可以将任意的基本类型转到新的基本类型中。比如将"1"转成1 ,将"true"转成true等等。太实用了。

    1         /// <summary>
    2         ///     结果为True时,输出参数
    3         /// </summary>
    4         /// <param name="b">判断源结果</param>
    5         /// <param name="t">输出值</param>
    6         public static T IsTrue<T>(this bool b, T t)

      当为true时,返回传入的结果。可以代替: true ? "xxxx" : "" 这种尴尬的写法。

    1         /// <summary>
    2         /// 获取中文
    3         /// </summary>
    4         /// <param name="b"></param>
    5         /// <param name="strTrue">为True时的中文:是</param>
    6         /// <param name="strFalse">为False时的中文:否</param>
    7         /// <returns></returns>
    8         public static string GetName(this bool b, string strTrue = "", string strFalse = "")

      拿到bool结果时,有时候我们希望是:true ? "对" : "错" 这种方式。

    1         /// <summary>
    2         ///     对DataTable排序
    3         /// </summary>
    4         /// <param name="dt">要排序的表</param>
    5         /// <param name="sort">要排序的字段</param>
    6         public static DataTable Sort(this DataTable dt, string sort = "ID DESC")

      对DataTable经常操作的朋友,对它的排序是不是很麻烦呢?这里用到的是克隆后的结果哦。

    1         /// <summary>
    2         ///     对DataTable分页
    3         /// </summary>
    4         /// <param name="dt">源表</param>
    5         /// <param name="pageSize">每页显示的记录数</param>
    6         /// <param name="pageIndex">页码</param>
    7         /// <returns></returns>
    8         public static DataTable Split(this DataTable dt, int pageSize = 20, int pageIndex = 1)

      对DataTable分页,也是很实用的。

    1         /// <summary>
    2         ///     DataTable转换为实体类
    3         /// </summary>
    4         /// <param name="dt">源DataTable</param>
    5         /// <typeparam name="T">实体类</typeparam>
    6         public static List<TResult> ToList<TResult>(this DataTable dt) where TResult : ModelInfo, new()

      将DataTable转化成List<实体>。

    1         /// <summary>
    2         ///     获取枚举中文
    3         /// </summary>
    4         /// <param name="eum">枚举值</param>
    5         public static string GetName(this Enum eum)

      得到枚举值的中文显示

    1         /// <summary>
    2         ///     获取枚举列表
    3         /// </summary>
    4         public static Dictionary<int, string> ToDictionary(this Type enumType)

      可以将枚举的所有元素转成字典

            /// <summary>
            ///     IDataReader转换为实体类
            /// </summary>
            /// <param name="reader">源IDataReader</param>
            /// <typeparam name="T">实体类</typeparam>
            public static List<T> ToList<T>(this IDataReader reader) where T : ModelInfo
    
            /// <summary>
            ///     数据填充
            /// </summary>
            /// <param name="reader">源IDataReader</param>
            /// <typeparam name="T">实体类</typeparam>
            public static T ToInfo<T>(this IDataReader reader) where T : ModelInfo, new()

      将IDataReader转成List<实体>或者 单个实体

    1         /// <summary>
    2         ///     数据分页
    3         /// </summary>
    4         /// <typeparam name="TSource">实体</typeparam>
    5         /// <param name="source">源对像</param>
    6         /// <param name="pageIndex">页码</param>
    7         /// <param name="pageSize">每页大小</param>
    8         public static IQueryable<TSource> Split<TSource>(this IQueryable<TSource> source, int pageSize = 20, int pageIndex = 1)

      对List进行分页

    1         /// <summary>
    2         ///     将List转换成字符串
    3         /// </summary>
    4         /// <param name="lst">要拼接的LIST</param>
    5         /// <param name="sign">分隔符</param>
    6         public static string ToString(this IEnumerable lst, string sign = ",")

      对List<T>按照指定分隔符拼接成字符串。如"1,2,3,4"

    1         /// <summary>
    2         ///     判断是否存在记录
    3         /// </summary>
    4         /// <param name="IDs">条件,等同于:o=> IDs.Contains(o.ID) 的操作</param>
    5         public static bool IsHaving<TInfo>(this IEnumerable<TInfo> lst, List<int> IDs) where TInfo : ModelInfo, new()

      根据条件判断是否存在

    1         /// <summary>
    2         ///     字段选择器
    3         /// </summary>
    4         /// <param name="select">字段选择器</param>
    5         /// <param name="IDs">条件,等同于:o=> IDs.Contains(o.ID) 的操作</param>
    6         /// <param name="lst">列表</param>
    7         public static List<T> ToSelectList<TInfo, T>(this IEnumerable<TInfo> lst, Func<TInfo, T> select)

      投影出指定元素列表。

    1         /// <summary>
    2         ///     将集合类转换成DataTable
    3         /// </summary>
    4         /// <param name="list">集合</param>
    5         /// <returns></returns>
    6         public static DataTable ToDataTable(this IList list)

      List<实体> 转 DataTable

    1         /// <summary>
    2         ///     将任何数组转换成用符号连接的字符串
    3         /// </summary>
    4         /// <param name="obj">任何对像</param>
    5         /// <param name="func">传入要在转换过程中要执行的方法</param>
    6         /// <param name="sign">分隔符</param>
    7         /// <typeparam name="T">基本对像</typeparam>
    8         public static string ToString<T>(this T[] obj, string sign = ",", Func<T, string> func = null)

      对数组T[]按照指定分隔符拼接成字符串。如"1,2,3,4"

    1         /// <summary>
    2         /// 直接返回分隔后的元素项
    3         /// </summary>
    4         /// <param name="arr">要分隔的字符串</param>
    5         /// <param name="tag">分隔的标识</param>
    6         /// <param name="index">元素下标</param>
    7         /// <returns></returns>
    8         public static string Split(this string arr, string tag, int index)

      根据指定字符串进行分隔,相当于"xxxx;xxx;".Split(";")[index]

    1         /// <summary>
    2         ///     指定清除标签的内容
    3         /// </summary>
    4         /// <param name="str">内容</param>
    5         /// <param name="tag">标签</param>
    6         /// <param name="options">选项</param>
    7         public static string ClearString(this string str, string tag, RegexOptions options = RegexOptions.None)

      使用正则清除符合规则的字符串。

    1         /// <summary>
    2         ///     将字符串转换成List型
    3         /// </summary>
    4         /// <param name="str">要转换的字符串</param>
    5         /// <param name="splitString">分隔符为NullOrEmpty时,则直接拆份为Char</param>
    6         /// <param name="defValue">默认值(单项转换失败时,默认值为NullOrEmpty时,则不添加,否则替换为默认值)</param>
    7         /// <typeparam name="T">基本类型</typeparam>
    8         public static List<T> ToList<T>(this string str, T defValue, string splitString = ",")

      将字符串以指定的分隔符,转成List 比如 "1,2,3,4,5" 以 , 分隔转成List<int>

    1         /// <summary>
    2         ///     删除指定最后的字符串(直到找到为止)
    3         /// </summary>
    4         /// <param name="str">要转换的字符串</param>
    5         /// <param name="strChar">要删除的字符串</param>
    6         public static string DelLastOf(this string str, string strChar)

      删除末尾的字符串。

    1         /// <summary>
    2         ///     比较两者是否相等,不考虑大小写,两边空格
    3         /// </summary>
    4         /// <param name="str">对比一</param>
    5         /// <param name="str2">对比二</param>
    6         /// <returns></returns>
    7         public static bool IsEquals(this string str, string str2)

      比较两者是否相等,不考虑大小写,两边空格

     1         /// <summary>
     2         ///     是否不为Null或者Empty
     3         /// </summary>
     4         /// <param name="str">要判断的字符串</param>
     5         public static bool IsHaving(this string str)
     6 
     7         /// <summary>
     8         ///     是否为Null或者Empty
     9         /// </summary>
    10         /// <param name="str">要判断的字符串</param>
    11         public static bool IsNullOrEmpty(this string str)

      判断值为空的情况

     1         /// <summary>
     2         ///     对比开头字符是否一致
     3         /// </summary>
     4         /// <param name="str">原字符串</param>
     5         /// <param name="value">要对比的字符串</param>
     6         /// <returns></returns>
     7         public static bool IsStartsWith(this string str, string value)
     8 
     9         /// <summary>
    10         ///     对比开头字符是否一致
    11         /// </summary>
    12         /// <param name="str">原字符串</param>
    13         /// <param name="value">要对比的字符串</param>
    14         /// <returns></returns>
    15         public static bool IsEndsWith(this string str, string value)

      不区别大小写

    1         /// <summary>
    2         ///     分隔字符串
    3         /// </summary>
    4         /// <param name="str">字符串</param>
    5         /// <param name="splitString">分隔符号</param>
    6         /// <returns></returns>
    7         public static string[] Split(this string str, string splitString = ",")

      支持字符串分隔符

    1         /// <summary>
    2         ///     当NullOrEmpty,用新的字符串代替,否则用原来的。
    3         /// </summary>
    4         /// <param name="str">要检测的值</param>
    5         /// <param name="newString">要替换的新字符串</param>
    6         public static string WhileNullOrEmpty(this string str, string newString)

      当NullOrEmpty,用新的字符串代替,否则用原来的。 很多时候,有些值为null,但我们希望它为NULL时默认给与值。非NULL时,则不理会。

    1         /// <summary>
    2         ///     数字格式化,将转换成1000,10
    3         /// </summary>
    4         public static string Format(this int number, bool isHaveTag = true, int len = 2)

      转换成金钱格式。

    导航

    目   录:Farseer.net轻量级开源框架 目录

    上一篇:Farseer.net轻量级开源框架 中级篇: BasePage、BaseController、BaseHandler、BaseMasterPage、BaseControls基类使用

    下一篇:Farseer.net轻量级开源框架 中级篇: 常用工具

    广告时间

    QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net

    Farseer.Net是一款ORM框架 + 常用工具 + 扩展集合。

    Farseer 意为:先知、预言家 通常在某些场合时,提供计谋、策略。也希望该框架能给大家提供最大化的便捷。

    ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)

    Farseer.Net的目标是:快速上手、快速开发、简单方便。

    1 new User { ID = 1, Name = "张三" }.Insert()
  • 相关阅读:
    最全 C 语言常用算法详解-排序-队列-堆栈-链表-递归-树 (面试有用)
    iOS多线程各种安全锁介绍
    将openfire部署到CentOS云服务器上
    触摸事件MultiTouch Events
    Usaco 2006Nov Round Numbers
    Codeforces 850C Arpa and a game with Mojtaba
    HDU4466 Triangle
    Codeforces Gym 101521A Shuttle Bus
    Codeforces 817F MEX Queries
    Codeforces 482B Interesting Array
  • 原文地址:https://www.cnblogs.com/steden/p/4081256.html
Copyright © 2011-2022 走看看