1. 程式人生 > 實用技巧 >.net工具類——物件轉換處理

.net工具類——物件轉換處理

.net工具類——物件轉換處理

  1. GetStrArray
  2. GetArrayStr
  3. StrToBool
  4. ObjToInt
  5. StrToInt
  6. ObjToDecimal
  7. StrToDecimal
  8. ObjToFloat
  9. StrToFloat
  10. ObjToDouble
  11. StrToDouble
  12. StrToDateTime
  13. ObjectToDateTime
  14. ObjectToStr

        #region 物件轉換處理

        /// <summary>
        /// 將字串轉換為陣列
        /// </summary>
        /// <param name="str">
字串</param> /// <returns>字串陣列</returns> public static string[] GetStrArray(string str) { return str.Split(new char[',']); } /// <summary> /// 將陣列轉換為字串 /// </summary> /// <param name="list">List</param>
/// <param name="speater">分隔符</param> /// <returns>String</returns> public static string GetArrayStr(List<string> list, string speater) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.Count; i++) {
if (i == list.Count - 1) { sb.Append(list[i]); } else { sb.Append(list[i]); sb.Append(speater); } } return sb.ToString(); } /// <summary> /// object型轉換為bool型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的bool型別結果</returns> public static bool StrToBool(object expression, bool defValue) { if (expression != null) return StrToBool(expression, defValue); return defValue; } /// <summary> /// string型轉換為bool型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的bool型別結果</returns> public static bool StrToBool(string expression, bool defValue) { if (expression != null) { if (string.Compare(expression, "true", true) == 0) return true; else if (string.Compare(expression, "false", true) == 0) return false; } return defValue; } /// <summary> /// 將物件轉換為Int32型別 /// </summary> /// <param name="expression">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static int ObjToInt(object expression, int defValue) { if (expression != null) return StrToInt(expression.ToString(), defValue); return defValue; } /// <summary> /// 將字串轉換為Int32型別 /// </summary> /// <param name="expression">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static int StrToInt(string expression, int defValue) { int rv; if (Int32.TryParse(expression, out rv)) return rv; return Convert.ToInt32(StrToFloat(expression, defValue)); } /// <summary> /// Object型轉換為decimal型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的decimal型別結果</returns> public static decimal ObjToDecimal(object expression, decimal defValue) { if (expression != null) return StrToDecimal(expression.ToString(), defValue); return defValue; } /// <summary> /// string型轉換為decimal型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的decimal型別結果</returns> public static decimal StrToDecimal(string expression, decimal defValue) { if ((expression == null) || (expression.Length > 10)) return defValue; decimal intValue = defValue; if (expression != null) { bool IsDecimal = Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(\.\w*)?$"); if (IsDecimal) decimal.TryParse(expression, out intValue); } return intValue; } /// <summary> /// Object型轉換為float型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static float ObjToFloat(object expression, float defValue) { if (expression != null) return StrToFloat(expression.ToString(), defValue); return defValue; } /// <summary> /// string型轉換為float型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static float StrToFloat(string expression, float defValue) { if ((expression == null) || (expression.Length > 10)) return defValue; float intValue = defValue; if (expression != null) { bool IsFloat = Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(\.\w*)?$"); if (IsFloat) float.TryParse(expression, out intValue); } return intValue; } /// <summary> /// Object型轉換為double型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static double ObjToDouble(object expression, double defValue) { if (expression != null) return StrToDouble(expression.ToString(), defValue); return defValue; } /// <summary> /// string型轉換為double型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static double StrToDouble(string expression, double defValue) { if ((expression == null) || (expression.Length > 10)) return defValue; double intValue = defValue; if (expression != null) { bool IsDouble = Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(\.\w*)?$"); if (IsDouble) double.TryParse(expression, out intValue); } return intValue; } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="str">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static DateTime StrToDateTime(string str, DateTime defValue) { if (!string.IsNullOrEmpty(str)) { DateTime dateTime; if (DateTime.TryParse(str, out dateTime)) return dateTime; } return defValue; } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="str">要轉換的字串</param> /// <returns>轉換後的int型別結果</returns> public static DateTime StrToDateTime(string str) { return StrToDateTime(str, new DateTime()); } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="obj">要轉換的物件</param> /// <returns>轉換後的int型別結果</returns> public static DateTime ObjectToDateTime(object obj) { return StrToDateTime(obj.ToString()); } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="obj">要轉換的物件</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static DateTime ObjectToDateTime(object obj, DateTime defValue) { return StrToDateTime(obj.ToString(), defValue); } /// <summary> /// 將物件轉換為字串 /// </summary> /// <param name="obj">要轉換的物件</param> /// <returns>轉換後的string型別結果</returns> public static string ObjectToStr(object obj) { if (obj == null) return ""; return obj.ToString().Trim(); } #endregion 物件轉換處理