using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Common { public static class ExtensionFuncation { #region 判断是否为空 /// <summary> /// 判断对象是否为null或者为空 /// </summary> /// <param name="o"></param> /// <returns></returns> public static bool IfIsNullOrEmpty(this object o) { if (null == o || o.Equals("")) return true; else return false; } /// <summary> /// 判断对象是否为null或者为空 /// </summary> /// <param name="o"></param> /// <returns></returns> public static bool IfIsNullOrEmpty(this string o) { if (string.IsNullOrWhiteSpace(o)) return true; else return false; } /// <summary> /// 判断对象是否为null或者为空 /// </summary> /// <param name="o"></param> /// <returns></returns> public static bool IfIsNullOrEmpty<T>(this List<T> o) { if(null == o || o.Count == 0) return true; else return false; } /// <summary> /// 判断对象是否为null或者为空 /// </summary> /// <param name="o"></param> /// <returns></returns> public static bool IfIsNullOrEmpty<T>(this IList<T> o) { if(null == o || o.Count == 0) return true; else return false; } /// <summary> /// 判断对象是否为null或者为空 /// </summary> /// <param name="o"></param> /// <returns></returns> public static bool IfIsNullOrEmpty<K, V>(this Dictionary<K, V> o) { if (null == o || o.Count == 0) return true; else return false; } #endregion #region 带默认值的类型转换 /// <summary> /// 类型转换带默认值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="o"></param> /// <param name="defaultValue">如果转换失败返回的默认值</param> /// <returns></returns> public static T ConvertToType<T>(this object o, T defaultValue) { try { return (T)System.Convert.ChangeType(o, typeof(T), null); } catch { return defaultValue; } } /// <summary> /// 类型转换带默认值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="o"></param> /// <param name="defaultValue">如果转换失败返回的默认值</param> /// <returns></returns> public static T ConvertToType<T>(this string o, T defaultValue) { try { return (T)System.Convert.ChangeType(o, typeof(T), null); } catch { return defaultValue; } } #endregion #region 提取中文首字母 /// <summary> /// 返回中文首字母小写格式的 /// </summary> /// <param name="paramChinese"></param> /// <param name="ifToUpper">是否转成大写字母返回</param> /// <returns></returns> public static string GetFirstLetter(this string paramChinese, bool ifToUpper) { string strTemp = ""; int iLen = paramChinese.Length; int i = 0; for (i = 0; i <= iLen - 1; i++) { strTemp += GetCharSpellCode(paramChinese.Substring(i, 1)); } return ifToUpper ? strTemp.ToUpper() : strTemp.ToLower(); } /// <summary> /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母 /// </summary> /// <param name="CnChar">单个汉字</param> /// <returns>单个大写字母</returns> private static string GetCharSpellCode(string paramChar) { long iCnChar; byte[] ZW = System.Text.Encoding.Default.GetBytes(paramChar); //如果是字母,则直接返回 if (ZW.Length == 1) { return paramChar.ToUpper(); } else { // get the array of byte from the single char int i1 = (short)(ZW[0]); int i2 = (short)(ZW[1]); iCnChar = i1 * 256 + i2; } //expresstion //table of the constant list // 'A'; //45217..45252 // 'B'; //45253..45760 // 'C'; //45761..46317 // 'D'; //46318..46825 // 'E'; //46826..47009 // 'F'; //47010..47296 // 'G'; //47297..47613 // 'H'; //47614..48118 // 'J'; //48119..49061 // 'K'; //49062..49323 // 'L'; //49324..49895 // 'M'; //49896..50370 // 'N'; //50371..50613 // 'O'; //50614..50621 // 'P'; //50622..50905 // 'Q'; //50906..51386 // 'R'; //51387..51445 // 'S'; //51446..52217 // 'T'; //52218..52697 //没有U,V // 'W'; //52698..52979 // 'X'; //52980..53640 // 'Y'; //53689..54480 // 'Z'; //54481..55289 // iCnChar match the constant if ((iCnChar >= 45217) && (iCnChar <= 45252)) { return "A"; } else if ((iCnChar >= 45253) && (iCnChar <= 45760)) { return "B"; } else if ((iCnChar >= 45761) && (iCnChar <= 46317)) { return "C"; } else if ((iCnChar >= 46318) && (iCnChar <= 46825)) { return "D"; } else if ((iCnChar >= 46826) && (iCnChar <= 47009)) { return "E"; } else if ((iCnChar >= 47010) && (iCnChar <= 47296)) { return "F"; } else if ((iCnChar >= 47297) && (iCnChar <= 47613)) { return "G"; } else if ((iCnChar >= 47614) && (iCnChar <= 48118)) { return "H"; } else if ((iCnChar >= 48119) && (iCnChar <= 49061)) { return "J"; } else if ((iCnChar >= 49062) && (iCnChar <= 49323)) { return "K"; } else if ((iCnChar >= 49324) && (iCnChar <= 49895)) { return "L"; } else if ((iCnChar >= 49896) && (iCnChar <= 50370)) { return "M"; } else if ((iCnChar >= 50371) && (iCnChar <= 50613)) { return "N"; } else if ((iCnChar >= 50614) && (iCnChar <= 50621)) { return "O"; } else if ((iCnChar >= 50622) && (iCnChar <= 50905)) { return "P"; } else if ((iCnChar >= 50906) && (iCnChar <= 51386)) { return "Q"; } else if ((iCnChar >= 51387) && (iCnChar <= 51445)) { return "R"; } else if ((iCnChar >= 51446) && (iCnChar <= 52217)) { return "S"; } else if ((iCnChar >= 52218) && (iCnChar <= 52697)) { return "T"; } else if ((iCnChar >= 52698) && (iCnChar <= 52979)) { return "W"; } else if ((iCnChar >= 52980) && (iCnChar <= 53688)) { return "X"; } else if ((iCnChar >= 53689) && (iCnChar <= 54480)) { return "Y"; } else if ((iCnChar >= 54481) && (iCnChar <= 55289)) { return "Z"; } else return ("?"); } #endregion } }