代码编写的过程中,较多的会涉及到基本数据类型的使用和定义,在项目中,对于类型的判定和类型间的相互转换,有时也较为的麻烦,先提供几种基本数据类型的判断方法:
1.判断对象是否为Int32类型的数字:
代码语言:javascript复制 /// <summary>
/// 判断对象是否为Int32类型的数字
/// </summary>
/// <param name="expression"></param>
/// <returns></returns>
public static bool IsNumeric(object expression)
{
return expression != null && IsNumeric(expression.ToString());
}
/// <summary>
/// 判断对象是否为Int32类型的数字
/// </summary>
/// <param name="expression"></param>
/// <returns></returns>
public static bool IsNumeric(string expression)
{
var str = expression;
if (!(str.Length > 0) || str.Length > 11 || !System.Text.RegularExpressions.Regex.IsMatch(str, @"^[-]?[0-9]*[.]?[0-9]*$")) return false;
return (str.Length < 10) || (str.Length == 10 && str[0] == '1') ||
(str.Length == 11 && str[0] == '-' && str[1] == '1');
}
2.是否为Double类型:
代码语言:javascript复制 /// <summary>
/// 是否为Double类型
/// </summary>
/// <param name="expression"></param>
/// <returns></returns>
public static bool IsDouble(object expression)
{
if (expression != null)
return System.Text.RegularExpressions.Regex.IsMatch(expression.ToString(), @"^([0-9])[0-9]*(.w*)?$");
return false;
}
3.将字符串转换为数组:
代码语言:javascript复制 /// <summary>
/// 将字符串转换为数组
/// </summary>
/// <param name="str">字符串</param>
/// <returns>字符串数组</returns>
public static string[] GetStrArray(string str)
{
return str.Split(new char[',']);
}
4.将数组转换为字符串:
代码语言:javascript复制 /// <summary>
/// 将数组转换为字符串
/// </summary>
/// <param name="list">List</param>
/// <param name="speater">分隔符</param>
/// <returns>String</returns>
public static string GetArrayStr(List<string> list, string speater)
{
var 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();
}
5.object型转换为bool型:
代码语言:javascript复制 /// <summary>
/// object型转换为bool型
/// </summary>
/// <param name="expression"></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;
}
6.string型转换为bool型:
代码语言:javascript复制 /// <summary>
/// string型转换为bool型
/// </summary>
/// <param name="expression"></param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的bool类型结果</returns>
public static bool StrToBool(string expression, bool defValue)
{
if (expression == null) return defValue;
if (string.Compare(expression, "true", StringComparison.OrdinalIgnoreCase) == 0)
return true;
return string.Compare(expression, "false", StringComparison.OrdinalIgnoreCase) != 0 && defValue;
}
7.将对象转换为Int32类型:
代码语言:javascript复制 /// <summary>
/// 将对象转换为Int32类型
/// </summary>
/// <param name="expression">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static int ObjToInt(object expression, int defValue)
{
return expression != null ? StrToInt(expression.ToString(), defValue) : defValue;
}
8.将字符串转换为Int32类型:
代码语言:javascript复制 /// <summary>
/// 将字符串转换为Int32类型
/// </summary>
/// <param name="expression">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static int StrToInt(string expression, int defValue)
{
if (string.IsNullOrEmpty(expression) || expression.Trim().Length >= 11 ||
!System.Text.RegularExpressions.Regex.IsMatch(expression.Trim(), @"^([-]|[0-9])[0-9]*(.w*)?$"))
return defValue;
int rv;
if (int.TryParse(expression, out rv))
return rv;
return Convert.ToInt32(StrToFloat(expression, defValue));
}
9.Object型转换为decimal型:
代码语言:javascript复制 /// <summary>
/// Object型转换为decimal型
/// </summary>
/// <param name="expression"></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;
}
10.string型转换为decimal型:
代码语言:javascript复制 /// <summary>
/// string型转换为decimal型
/// </summary>
/// <param name="expression"></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;
{
bool isDecimal = System.Text.RegularExpressions.Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(.w*)?$");
if (isDecimal)
decimal.TryParse(expression, out intValue);
}
return intValue;
}
11.Object型转换为float型:
代码语言:javascript复制 /// <summary>
/// Object型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="expression"></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;
}
12.string型转换为float型:
代码语言:javascript复制 /// <summary>
/// string型转换为float型
/// </summary>
/// <param name="expression"></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;
{
bool isFloat = System.Text.RegularExpressions.Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(.w*)?$");
if (isFloat)
float.TryParse(expression, out intValue);
}
return intValue;
}
13.将对象转换为日期时间类型(提供几种操作方法份的重载):
代码语言:javascript复制 /// <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, DateTime.Now);
}
/// <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);
}
14.将对象转换为字符串:
代码语言:javascript复制 /// <summary>
/// 将对象转换为字符串
/// </summary>
/// <param name="obj">要转换的对象</param>
/// <returns>转换后的string类型结果</returns>
public static string ObjectToStr(object obj)
{
if (obj == null)
return "";
return obj.ToString().Trim();
}