在使用框架的時候,都須要引用擴展方法的命名空間: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" : "" 這種尷尬的寫法。this
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 ? "對" : "錯" 這種方式。spa
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常常操做的朋友,對它的排序是否是很麻煩呢?這裏用到的是克隆後的結果哦。.net
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分頁,也是很實用的。code
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<實體>。orm
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)
轉換成金錢格式。
QQ羣:116228666 (Farseer.net開源框架交流) 請註明:Farseer.Net
Farseer.Net是一款ORM框架 + 經常使用工具 + 擴展集合。
Farseer 意爲:先知、預言家 一般在某些場合時,提供計謀、策略。也但願該框架能給你們提供最大化的便捷。
ORM:其英文全稱是:Object(對象) Relational(關係) Mapping(映射)
Farseer.Net的目標是:快速上手、快速開發、簡單方便。
1 new User { ID = 1, Name = "張三" }.Insert()