zoukankan      html  css  js  c++  java
  • .net基本数据类型操作

         代码编写的过程中,较多的会涉及到基本数据类型的使用和定义,在项目中,对于类型的判定和类型间的相互转换,有时也较为的麻烦,先提供几种基本数据类型的判断方法:

    1.判断对象是否为Int32类型的数字:

            /// <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类型:

            /// <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.将字符串转换为数组:

            /// <summary>
            /// 将字符串转换为数组
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>字符串数组</returns>
            public static string[] GetStrArray(string str)
            {
                return str.Split(new char[',']);
            }

    4.将数组转换为字符串:

            /// <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型:

            /// <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型:

            /// <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类型:

             /// <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类型:

            /// <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型:

            /// <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型:

            /// <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型:

            /// <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型:

            /// <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.将对象转换为日期时间类型(提供几种操作方法份的重载):

            /// <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.将对象转换为字符串:

            /// <summary>
            /// 将对象转换为字符串
            /// </summary>
            /// <param name="obj">要转换的对象</param>
            /// <returns>转换后的string类型结果</returns>
            public static string ObjectToStr(object obj)
            {
                if (obj == null)
                    return "";
                return obj.ToString().Trim();
            }
  • 相关阅读:
    iOS10 的适配问题,你遇到了吗?导航栏标题和返回按钮神奇的消失了
    如何在获取不到第一响应者控件时移除键盘
    类名与字符串的互转
    clang format 官方文档自定义参数介绍(中英文)
    clang format 自定义样式常用参数说明
    Xcode 设置代码不自动换行
    企业项目如何打包成.ipa文件
    多个过渡动画效果
    压栈过渡动画
    底部不规则导航栏2
  • 原文地址:https://www.cnblogs.com/pengze0902/p/5948483.html
Copyright © 2011-2022 走看看