zoukankan      html  css  js  c++  java
  • 字符串、数值 等类型的相互 安全转换

    转换方法代码:

      1 #region SafeParse
      2         public static bool SafeParseBool(object target, bool defaultValue)
      3         {
      4             if (target == null) return defaultValue;
      5             string tmp = target.ToString(); if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
      6             return SafeParseBool(tmp, defaultValue);
      7         }
      8         public static bool SafeParseBool(string text, bool defaultValue)
      9         {
     10             bool flag;
     11             if (bool.TryParse(text, out flag))
     12             {
     13                 defaultValue = flag;
     14             }
     15             return defaultValue;
     16         }
     17 
     18         public static DateTime SafeParseDateTime(object target, DateTime defaultValue)
     19         {
     20             if (target == null) return defaultValue;
     21             string tmp = target.ToString(); if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
     22             return SafeParseDateTime(tmp, defaultValue);
     23         }
     24         public static DateTime SafeParseDateTime(string text, DateTime defaultValue)
     25         {
     26             DateTime time;
     27             if (DateTime.TryParse(text, out time))
     28             {
     29                 defaultValue = time;
     30             }
     31             return defaultValue;
     32         }
     33 
     34         public static decimal SafeParseDecimal(object target, decimal defaultValue)
     35         {
     36             if (target == null) return defaultValue;
     37             string tmp = target.ToString(); if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
     38             return SafeParseDecimal(tmp, defaultValue);
     39         }
     40         public static decimal SafeParseDecimal(string text, decimal defaultValue)
     41         {
     42             decimal num;
     43             if (decimal.TryParse(text, out num))
     44             {
     45                 defaultValue = num;
     46             }
     47             return defaultValue;
     48         }
     49 
     50         public static short SafeParseShort(object target, short defaultValue)
     51         {
     52             if (target == null) return defaultValue;
     53             string tmp = target.ToString(); if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
     54             return SafeParseShort(tmp, defaultValue);
     55         }
     56         public static short SafeParseShort(string text, short defaultValue)
     57         {
     58             short num;
     59             if (short.TryParse(text, out num))
     60             {
     61                 defaultValue = num;
     62             }
     63             return defaultValue;
     64         }
     65 
     66         public static int SafeParseInt(object target, int defaultValue)
     67         {
     68             if (target == null) return defaultValue;
     69             string tmp = target.ToString(); if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
     70             return SafeParseInt(tmp, defaultValue);
     71         }
     72         public static int SafeParseInt(string text, int defaultValue)
     73         {
     74             int num;
     75             if (int.TryParse(text, out num))
     76             {
     77                 defaultValue = num;
     78             }
     79             return defaultValue;
     80         }
     81         public static int[] SafeParseInt(string[] text, int defaultValue)
     82         {
     83             if (text == null || text.Length < 1) return new[] { defaultValue };
     84 
     85             int[] nums = new int[text.Length];
     86             int tmp;
     87             for (int i = 0; i < text.Length; i++)
     88             {
     89                 if (int.TryParse(text[i], out tmp)) nums[i] = tmp;
     90                 else nums[i] = defaultValue;
     91             }
     92             return nums;
     93         }
     94         public static string SafeParseIntFilter(string text, int defaultValue, char split = ',')
     95         {
     96             if (string.IsNullOrWhiteSpace(text)) return defaultValue.ToString(CultureInfo.InvariantCulture);
     97             string[] tmpSplit = text.Split(new[] { split }, StringSplitOptions.RemoveEmptyEntries);
     98             if (tmpSplit.Length < 1) return defaultValue.ToString(CultureInfo.InvariantCulture);
     99 
    100             int tmp;
    101             for (int i = 0; i < tmpSplit.Length; i++)
    102             {
    103                 if (int.TryParse(tmpSplit[i], out tmp))
    104                     tmpSplit[i] = tmp.ToString(CultureInfo.InvariantCulture);
    105                 else
    106                     tmpSplit[i] = defaultValue.ToString(CultureInfo.InvariantCulture);
    107             }
    108             return string.Join(split.ToString(CultureInfo.InvariantCulture), tmpSplit);
    109         }
    110 
    111         public static long SafeParseLong(object target, long defaultValue)
    112         {
    113             if (target == null) return defaultValue;
    114             string tmp = target.ToString(); if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    115             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    116             return SafeParseLong(tmp, defaultValue);
    117         }
    118         public static long SafeParseLong(string text, long defaultValue)
    119         {
    120             long num;
    121             if (long.TryParse(text, out num))
    122             {
    123                 defaultValue = num;
    124             }
    125             return defaultValue;
    126         }
    127 
    128         public static long[] SafeParseLong(string[] text, long defaultValue)
    129         {
    130             if (text == null || text.Length < 1) return new[] { defaultValue };
    131 
    132             long[] nums = new long[text.Length];
    133             long tmp;
    134             for (int i = 0; i < text.Length; i++)
    135             {
    136                 if (long.TryParse(text[i], out tmp)) nums[i] = tmp;
    137                 else nums[i] = defaultValue;
    138             }
    139             return nums;
    140         }
    141 
    142         public static string SafeParseLongFilter(string text, long defaultValue, char split = ',')
    143         {
    144             if (string.IsNullOrWhiteSpace(text)) return defaultValue.ToString(CultureInfo.InvariantCulture);
    145             string[] tmpSplit = text.Split(new[] { split }, StringSplitOptions.RemoveEmptyEntries);
    146             if (tmpSplit.Length < 1) return defaultValue.ToString(CultureInfo.InvariantCulture);
    147 
    148             long tmp;
    149             for (int i = 0; i < tmpSplit.Length; i++)
    150             {
    151                 if (long.TryParse(tmpSplit[i], out tmp))
    152                     tmpSplit[i] = tmp.ToString(CultureInfo.InvariantCulture);
    153                 else
    154                     tmpSplit[i] = defaultValue.ToString(CultureInfo.InvariantCulture);
    155             }
    156             return string.Join(split.ToString(CultureInfo.InvariantCulture), tmpSplit);
    157         }
    158 
    159         public static string SafeParseString(object target, string defaultValue)
    160         {
    161             if (null != target && "" != target.ToString())
    162             {
    163                 return target.ToString();
    164             }
    165             return defaultValue;
    166         }
    167 
    168         #region SafeParseNullParse
    169         public static bool? SafeParseBool(object target, bool? defaultValue)
    170         {
    171             if (target == null) return defaultValue;
    172             string tmp = target.ToString();
    173             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    174             return SafeParseBool(tmp, defaultValue);
    175         }
    176         public static bool? SafeParseBool(string text, bool? defaultValue)
    177         {
    178             bool flag;
    179             if (bool.TryParse(text, out flag))
    180             {
    181                 defaultValue = flag;
    182             }
    183             return defaultValue;
    184         }
    185 
    186         public static DateTime? SafeParseDateTime(object target, DateTime? defaultValue)
    187         {
    188             if (target == null) return defaultValue;
    189             string tmp = target.ToString();
    190             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    191             return SafeParseDateTime(tmp, defaultValue);
    192         }
    193         public static DateTime? SafeParseDateTime(string text, DateTime? defaultValue)
    194         {
    195             DateTime time;
    196             if (DateTime.TryParse(text, out time))
    197             {
    198                 defaultValue = time;
    199             }
    200             return defaultValue;
    201         }
    202 
    203         public static decimal? SafeParseDecimal(object target, decimal? defaultValue)
    204         {
    205             if (target == null) return defaultValue;
    206             string tmp = target.ToString();
    207             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    208             return SafeParseDecimal(tmp, defaultValue);
    209         }
    210         public static decimal? SafeParseDecimal(string text, decimal? defaultValue)
    211         {
    212             decimal num;
    213             if (decimal.TryParse(text, out num))
    214             {
    215                 defaultValue = num;
    216             }
    217             return defaultValue;
    218         }
    219 
    220         public static short? SafeParseShort(object target, short? defaultValue)
    221         {
    222             if (target == null) return defaultValue;
    223             string tmp = target.ToString();
    224             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    225             return SafeParseShort(tmp, defaultValue);
    226         }
    227         public static short? SafeParseShort(string text, short? defaultValue)
    228         {
    229             short num;
    230             if (short.TryParse(text, out num))
    231             {
    232                 defaultValue = num;
    233             }
    234             return defaultValue;
    235         }
    236 
    237         public static int? SafeParseInt(object target, int? defaultValue)
    238         {
    239             if (target == null) return defaultValue;
    240             string tmp = target.ToString();
    241             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    242             return SafeParseInt(tmp, defaultValue);
    243         }
    244         public static int? SafeParseInt(string text, int? defaultValue)
    245         {
    246             int num;
    247             if (int.TryParse(text, out num))
    248             {
    249                 defaultValue = num;
    250             }
    251             return defaultValue;
    252         }
    253 
    254         public static long? SafeParseLong(object target, long? defaultValue)
    255         {
    256             if (target == null) return defaultValue;
    257             string tmp = target.ToString();
    258             if (string.IsNullOrWhiteSpace(tmp)) return defaultValue;
    259             return SafeParseLong(tmp, defaultValue);
    260         }
    261         public static long? SafeParseLong(string text, long? defaultValue)
    262         {
    263             long num;
    264             if (long.TryParse(text, out num))
    265             {
    266                 defaultValue = num;
    267             }
    268             return defaultValue;
    269         }
    270         #endregion
    271 
    272         #region SafeParseEnum
    273         /// <summary>
    274         /// 将枚举数值or枚举名称 安全转换为枚举对象
    275         /// </summary>
    276         /// <typeparam name="T">枚举类型</typeparam>
    277         /// <param name="value">数值or名称</param>
    278         /// <param name="defaultValue">默认值</param>
    279         /// <remarks>转换区分大小写</remarks>
    280         /// <returns></returns>
    281         public static T SafeParseEnum<T>(string value, T defaultValue) where T : struct
    282         {
    283             return SafeParseEnum<T>(value, defaultValue, false);
    284         }
    285 
    286         /// <summary>
    287         /// 将枚举数值or枚举名称 安全转换为枚举对象
    288         /// </summary>
    289         /// <typeparam name="T">枚举类型</typeparam>
    290         /// <param name="value">数值or名称</param>
    291         /// <param name="defaultValue">默认值</param>
    292         /// <param name="ignoreCase">是否忽略大小写 true 不区分大小写 | false 区分大小写</param>
    293         /// <returns></returns>
    294         public static T SafeParseEnum<T>(string value, T defaultValue, bool ignoreCase) where T : struct
    295         {
    296             T result;
    297             if (Enum.TryParse<T>(value, ignoreCase, out result))
    298             {
    299                 if (Enum.IsDefined(typeof(T), result))
    300                 {
    301                     defaultValue = result;
    302                 }
    303             }
    304             return defaultValue;
    305         }
    306         #endregion
    307 
    308         #endregion
  • 相关阅读:
    【Lintcode】91 最小调整代价
    【LintCode】29 交叉字符串
    十二、动态规划
    HttpClient的简单使用
    ajax跨域请求
    session共享
    八大排序算法
    MAC 脚本批量启动应用
    知识点整理-bio、nio的简单demo
    知识点整理-数组如何实现随机访问?
  • 原文地址:https://www.cnblogs.com/linJie1930906722/p/5228300.html
Copyright © 2011-2022 走看看