首页 > 其他分享 >类型转换工具类

类型转换工具类

时间:2024-06-22 11:54:02浏览次数:21  
标签:类型转换 转换 object DateTime str return 工具 public

  1 public static partial class Extensions
  2 {
  3     #region 转换为long
  4     /// <summary>
  5     /// 将object转换为long,若转换失败,则返回0。不抛出异常。  
  6     /// </summary>
  7     /// <param name="str"></param>
  8     /// <returns></returns>
  9     public static long ParseToLong(this object obj)
 10     {
 11         try
 12         {
 13             return long.Parse(obj.ToString());
 14         }
 15         catch
 16         {
 17             return 0L;
 18         }
 19     }
 20 
 21     /// <summary>
 22     /// 将object转换为long,若转换失败,则返回指定值。不抛出异常。  
 23     /// </summary>
 24     /// <param name="str"></param>
 25     /// <param name="defaultValue"></param>
 26     /// <returns></returns>
 27     public static long ParseToLong(this string str, long defaultValue)
 28     {
 29         try
 30         {
 31             return long.Parse(str);
 32         }
 33         catch
 34         {
 35             return defaultValue;
 36         }
 37     }
 38     #endregion
 39 
 40     #region 转换为int
 41     /// <summary>
 42     /// 将object转换为int,若转换失败,则返回0。不抛出异常。  
 43     /// </summary>
 44     /// <param name="str"></param>
 45     /// <returns></returns>
 46     public static int ParseToInt(this object str)
 47     {
 48         try
 49         {
 50             return Convert.ToInt32(str);
 51         }
 52         catch
 53         {
 54             return 0;
 55         }
 56     }
 57 
 58     /// <summary>
 59     /// 将object转换为int,若转换失败,则返回指定值。不抛出异常。 
 60     /// null返回默认值
 61     /// </summary>
 62     /// <param name="str"></param>
 63     /// <param name="defaultValue"></param>
 64     /// <returns></returns>
 65     public static int ParseToInt(this object str, int defaultValue)
 66     {
 67         if (str == null)
 68         {
 69             return defaultValue;
 70         }
 71         try
 72         {
 73             return Convert.ToInt32(str);
 74         }
 75         catch
 76         {
 77             return defaultValue;
 78         }
 79     }
 80     #endregion
 81 
 82     #region 转换为short
 83     /// <summary>
 84     /// 将object转换为short,若转换失败,则返回0。不抛出异常。  
 85     /// </summary>
 86     /// <param name="str"></param>
 87     /// <returns></returns>
 88     public static short ParseToShort(this object obj)
 89     {
 90         try
 91         {
 92             return short.Parse(obj.ToString());
 93         }
 94         catch
 95         {
 96             return 0;
 97         }
 98     }
 99 
100     /// <summary>
101     /// 将object转换为short,若转换失败,则返回指定值。不抛出异常。  
102     /// </summary>
103     /// <param name="str"></param>
104     /// <returns></returns>
105     public static short ParseToShort(this object str, short defaultValue)
106     {
107         try
108         {
109             return short.Parse(str.ToString());
110         }
111         catch
112         {
113             return defaultValue;
114         }
115     }
116     #endregion
117 
118     #region 转换为demical
119     /// <summary>
120     /// 将object转换为demical,若转换失败,则返回指定值。不抛出异常。  
121     /// </summary>
122     /// <param name="str"></param>
123     /// <returns></returns>
124     public static decimal ParseToDecimal(this object str, decimal defaultValue)
125     {
126         try
127         {
128             return decimal.Parse(str.ToString());
129         }
130         catch
131         {
132             return defaultValue;
133         }
134     }
135 
136     /// <summary>
137     /// 将object转换为demical,若转换失败,则返回0。不抛出异常。  
138     /// </summary>
139     /// <param name="str"></param>
140     /// <returns></returns>
141     public static decimal ParseToDecimal(this object str)
142     {
143         try
144         {
145             return decimal.Parse(str.ToString());
146         }
147         catch
148         {
149             return 0;
150         }
151     }
152     #endregion
153 
154     #region 转化为bool
155     /// <summary>
156     /// 将object转换为bool,若转换失败,则返回false。不抛出异常。  
157     /// </summary>
158     /// <param name="str"></param>
159     /// <returns></returns>
160     public static bool ParseToBool(this object str)
161     {
162         try
163         {
164             return bool.Parse(str.ToString());
165         }
166         catch
167         {
168             return false;
169         }
170     }
171 
172     /// <summary>
173     /// 将object转换为bool,若转换失败,则返回指定值。不抛出异常。  
174     /// </summary>
175     /// <param name="str"></param>
176     /// <returns></returns>
177     public static bool ParseToBool(this object str, bool result)
178     {
179         try
180         {
181             return bool.Parse(str.ToString());
182         }
183         catch
184         {
185             return result;
186         }
187     }
188     #endregion
189 
190     #region 转换为float
191     /// <summary>
192     /// 将object转换为float,若转换失败,则返回0。不抛出异常。  
193     /// </summary>
194     /// <param name="str"></param>
195     /// <returns></returns>
196     public static float ParseToFloat(this object str)
197     {
198         try
199         {
200             return float.Parse(str.ToString());
201         }
202         catch
203         {
204             return 0;
205         }
206     }
207 
208     /// <summary>
209     /// 将object转换为float,若转换失败,则返回指定值。不抛出异常。  
210     /// </summary>
211     /// <param name="str"></param>
212     /// <returns></returns>
213     public static float ParseToFloat(this object str, float result)
214     {
215         try
216         {
217             return float.Parse(str.ToString());
218         }
219         catch
220         {
221             return result;
222         }
223     }
224     #endregion
225 
226     #region 转换为Guid
227     /// <summary>
228     /// 将string转换为Guid,若转换失败,则返回Guid.Empty。不抛出异常。  
229     /// </summary>
230     /// <param name="str"></param>
231     /// <returns></returns>
232     public static Guid ParseToGuid(this string str)
233     {
234         try
235         {
236             return new Guid(str);
237         }
238         catch
239         {
240             return Guid.Empty;
241         }
242     }
243     #endregion
244 
245     #region 转换为DateTime
246     /// <summary>
247     /// 将string转换为DateTime,若转换失败,则返回日期最小值。不抛出异常。  
248     /// </summary>
249     /// <param name="str"></param>
250     /// <returns></returns>
251     public static DateTime ParseToDateTime(this string str)
252     {
253         try
254         {
255             if (string.IsNullOrWhiteSpace(str))
256             {
257                 return DateTime.MinValue;
258             }
259             if (str.Contains("-") || str.Contains("/"))
260             {
261                 return DateTime.Parse(str);
262             }
263             else
264             {
265                 int length = str.Length;
266                 switch (length)
267                 {
268                     case 4:
269                         return DateTime.ParseExact(str, "yyyy", System.Globalization.CultureInfo.CurrentCulture);
270                     case 6:
271                         return DateTime.ParseExact(str, "yyyyMM", System.Globalization.CultureInfo.CurrentCulture);
272                     case 8:
273                         return DateTime.ParseExact(str, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
274                     case 10:
275                         return DateTime.ParseExact(str, "yyyyMMddHH", System.Globalization.CultureInfo.CurrentCulture);
276                     case 12:
277                         return DateTime.ParseExact(str, "yyyyMMddHHmm", System.Globalization.CultureInfo.CurrentCulture);
278                     case 14:
279                         return DateTime.ParseExact(str, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
280                     default:
281                         return DateTime.ParseExact(str, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
282                 }
283             }
284         }
285         catch
286         {
287             return DateTime.MinValue;
288         }
289     }
290 
291     /// <summary>
292     /// 将string转换为DateTime,若转换失败,则返回默认值。  
293     /// </summary>
294     /// <param name="str"></param>
295     /// <param name="defaultValue"></param>
296     /// <returns></returns>
297     public static DateTime ParseToDateTime(this string str, DateTime? defaultValue)
298     {
299         try
300         {
301             if (string.IsNullOrWhiteSpace(str))
302             {
303                 return defaultValue.GetValueOrDefault();
304             }
305             if (str.Contains("-") || str.Contains("/"))
306             {
307                 return DateTime.Parse(str);
308             }
309             else
310             {
311                 int length = str.Length;
312                 switch (length)
313                 {
314                     case 4:
315                         return DateTime.ParseExact(str, "yyyy", System.Globalization.CultureInfo.CurrentCulture);
316                     case 6:
317                         return DateTime.ParseExact(str, "yyyyMM", System.Globalization.CultureInfo.CurrentCulture);
318                     case 8:
319                         return DateTime.ParseExact(str, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
320                     case 10:
321                         return DateTime.ParseExact(str, "yyyyMMddHH", System.Globalization.CultureInfo.CurrentCulture);
322                     case 12:
323                         return DateTime.ParseExact(str, "yyyyMMddHHmm", System.Globalization.CultureInfo.CurrentCulture);
324                     case 14:
325                         return DateTime.ParseExact(str, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
326                     default:
327                         return DateTime.ParseExact(str, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
328                 }
329             }
330         }
331         catch
332         {
333             return defaultValue.GetValueOrDefault();
334         }
335     }
336     #endregion
337 
338     #region 转换为string
339     /// <summary>
340     /// 将object转换为string,若转换失败,则返回""。不抛出异常。  
341     /// </summary>
342     /// <param name="str"></param>
343     /// <returns></returns>
344     public static string ParseToString(this object obj)
345     {
346         try
347         {
348             if (obj == null)
349             {
350                 return string.Empty;
351             }
352             else
353             {
354                 return obj.ToString();
355             }
356         }
357         catch
358         {
359             return string.Empty;
360         }
361     }
362     public static string ParseToStrings<T>(this object obj)
363     {
364         try
365         {
366             var list = obj as IEnumerable<T>;
367             if (list != null)
368             {
369                 return string.Join(",", list);
370             }
371             else
372             {
373                 return obj.ToString();
374             }
375         }
376         catch
377         {
378             return string.Empty;
379         }
380 
381     }
382     #endregion
383 
384     #region 转换为double
385     /// <summary>
386     /// 将object转换为double,若转换失败,则返回0。不抛出异常。  
387     /// </summary>
388     /// <param name="obj"></param>
389     /// <returns></returns>
390     public static double ParseToDouble(this object obj)
391     {
392         try
393         {
394             return double.Parse(obj.ToString());
395         }
396         catch
397         {
398             return 0;
399         }
400     }
401 
402     /// <summary>
403     /// 将object转换为double,若转换失败,则返回指定值。不抛出异常。  
404     /// </summary>
405     /// <param name="str"></param>
406     /// <param name="defaultValue"></param>
407     /// <returns></returns>
408     public static double ParseToDouble(this object str, double defaultValue)
409     {
410         try
411         {
412             return double.Parse(str.ToString());
413         }
414         catch
415         {
416             return defaultValue;
417         }
418     }
419     #endregion
420 
421     #region 强制转换类型
422     /// <summary>
423     /// 强制转换类型
424     /// </summary>
425     /// <typeparam name="TResult"></typeparam>
426     /// <param name="source"></param>
427     /// <returns></returns>
428     public static IEnumerable<TResult> CastSuper<TResult>(this IEnumerable source)
429     {
430         foreach (object item in source)
431         {
432             yield return (TResult)Convert.ChangeType(item, typeof(TResult));
433         }
434     }
435     #endregion
436 }

 

标签:类型转换,转换,object,DateTime,str,return,工具,public
From: https://www.cnblogs.com/leon1128/p/18262106

相关文章

  • http请求的工具类
    1publicclassHttpHelper2{3///<summary>4///发起POST同步请求5///</summary>6///<paramname="url"></param>7///<paramname="postData"></param>8///&l......
  • 如何使用SQL工具批量执行SQL文件?(以MySQL和SQLynx为例)
    目录1.配置MySQL数据源2.打开SQL文件3.执行SQL文件4.检查执行结果5.SQL文件示例6.注意事项7.总结在现代数据库管理和操作中,批量执行SQL文件在MySQL中显现出其巨大的价值和不可替代的作用。通过将多个SQL语句集成在一个文件中进行批量处理,数据库管理......
  • 日期工具类
    1publicclassDateTimeHelper2{3///<summary>4///5///</summary>6///<paramname="dateTime"></param>7///<returns></returns>8publicstaticDateTimeGetBeg......
  • Json工具类
    publicstaticclassJsonHelper{///<summary>///将对象序列化为JSON格式///</summary>///<paramname="o">对象</param>///<returns>json字符串</returns>publicstaticstringSerializeObject(object......
  • 无人直播不封号美女舞团3.0 多重防非操作(教程+素材+工具)
    在这个数字化的时代,直播已经成为了一种新的商业模式。然而,如何打造一个24小时自动循环播放的直播间,并通过此获得收益,却是许多人面临的挑战。本文将介绍如何通过使用OBS和咩播软件,创建一个能够吸引人们进入直播间并产生互动的直播环境,从而实现每天1000+,2000+的收益,甚至达到1......
  • STM32三种调试工具CMSIS-DAP、J-Link和ST-Link
    一.概述CMSIS-DAP、J-Link和ST-Link均是嵌入式处理器的开发调试工具。CMSIS-DAP是一种轻量级调试接口,旨在实现开源的开发调试。它的优点是使用方便、通用性好、成本低,还支持固件的在线升级。J-Link是一款由德国公司SEGGERMicrocontroller开发的高性能调试工具。但是价格较......
  • Camtasia 中视频制作和编辑的能力,让你能够创建更具创意和专业性的视频内容。随着实践
    Camtasia的初级应用,以下是一个简单的大纲,帮助你了解如何开始使用这款视频编辑和屏幕录制软件:1. 软件介绍和安装介绍Camtasia的功能和用途。下载和安装Camtasia软件。注册和激活软件(如果需要)。2. 录制屏幕启动Camtasia并了解用户界面。设置录制参数(如屏幕区域、......
  • 外链工具:助力高效外链建设
    免费外链工具:助力高效外链建设随着互联网的快速发展,SEO优化越来越受到网站管理者的重视。在SEO优化中,外链建设是非常重要的环节之一。外链建设能够有效提高网站的权重和排名,从而带来更多的流量和收益。然而,外链建设并不是一件容易的事情。需要寻找相关的网站进行交换链接,或者花......
  • Fiddler 是一个功能强大的网络调试工具,通过掌握其高级功能,您可以更深入地进行流量分析
    Fiddler是一个功能强大的网络调试工具,主要用于捕获、检查和修改HTTP请求和响应。以下是一个Fiddler初级应用的大纲,帮助你快速了解如何使用它进行网络调试和分析:1. 安装和基本设置下载和安装Fiddler。启动Fiddler,并了解主界面的基本布局。配置浏览器或应用程序以使用......
  • 用Rufus工具制作Windows To Go,三步搞定!
    前言前几天小白发了一篇关于使用Dism++工具制作WindowsToGo的教程:简单几步把完整的Windows塞进U盘,小白都能看懂这个在Dism++软件上制作WindowsToGo的教程比在WinPE系统制作简单了一些,但里面有部分操作可能有些小伙伴看不懂。这个没关系!今天小白给小伙伴们带来更加简......