【.Net 6.0--通用帮助类--ConvertHelper】

前言

类型转换帮助类,包含下表中的方法:

方法名 方法解释
ObjToInt object转int
ObjToMoney object转double
ObjToString object转string
ObjToDecimal object转decimal
ObjToDate object转datetime
ObjToDateSplitYMD object转datetime(yyyy-MM-dd)
ObjToDateSplitYMDHMS object转datetime(yyyy-MM-dd HH:mm:ss)
ObjToDateY object转datetime(yyyy)
ObjToDateYMD object转datetime(yyyyMMdd)
ObjToDateYMDH object转datetime(yyyyMMddHH)
ObjToDateYMDHMS object转datetime(yyyyMMddHHmmss)
ObjToBool object转bool
ObjToChar object转char
ObjToStringBySplit object转list
ObjToBase64String object转base64 string
ObjToStringFromBase64 base64 string转object

代码示例

C# 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VW.API.Common.Utils
{
    /// <summary>
    /// ConvertHelper 的摘要说明:格式转换帮助类
    /// </summary>
    public static class ConvertHelper
    {
        /// <summary>
        /// obj->int
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>int</returns>
        public static int ObjToInt(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return 0;
                }
                if (thisValue != null && thisValue != DBNull.Value && int.TryParse(thisValue.ToString(), out int reval))
                {
                    return reval;
                }

                return 0;
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->double
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>double</returns>
        public static double ObjToMoney(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return 0;
                }
                if (thisValue != null && thisValue != DBNull.Value && double.TryParse(thisValue.ToString(), out double reval))
                {
                    return reval;
                }

                return 0;
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->string
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>string</returns>
        public static string ObjToString(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }
                if (thisValue != null)
                    return thisValue.ToString();

                return "";
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->decimal
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>decimal</returns>
        public static decimal ObjToDecimal(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return 0;
                }
                if (thisValue != null && thisValue != DBNull.Value && decimal.TryParse(thisValue.ToString(), out decimal reval))
                {
                    return reval;
                }

                return 0;
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime2
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static DateTime ObjToDate2(this object thisValue)
        {
            try
            {
                return thisValue.ToString().Length switch
                {
                    //年
                    4 => new DateTime(thisValue.ObjToInt(), 1, 1, 0, 0, 0),
                    //月
                    6 => new DateTime(thisValue.ToString().Substring(0, 4).ObjToInt(), thisValue.ToString().Substring(4, 2).ObjToInt(), 1, 0, 0, 0),
                    //日
                    8 => new DateTime(thisValue.ToString().Substring(0, 4).ObjToInt(), thisValue.ToString().Substring(4, 2).ObjToInt(), thisValue.ToString().Substring(6, 2).ObjToInt(), 0, 0, 0),
                    //时
                    10 => new DateTime(thisValue.ToString().Substring(0, 4).ObjToInt(), thisValue.ToString().Substring(4, 2).ObjToInt(), thisValue.ToString().Substring(6, 2).ObjToInt(), thisValue.ToString().Substring(8, 2).ObjToInt(), 0, 0),
                    //分钟
                    12 => new DateTime(thisValue.ToString().Substring(0, 4).ObjToInt(), thisValue.ToString().Substring(4, 2).ObjToInt(), thisValue.ToString().Substring(6, 2).ObjToInt(), thisValue.ToString().Substring(8, 2).ObjToInt(), thisValue.ToString().Substring(10, 2).ObjToInt(), 0),
                    _ => DateTime.MinValue,
                };
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static DateTime ObjToDate(this object thisValue)
        {
            try
            {
                DateTime reval = DateTime.MinValue;
                if (thisValue == null)
                {
                    return reval;
                }
                if (thisValue != null && thisValue != DBNull.Value && DateTime.TryParse(thisValue.ToString(), out reval))
                {
                    reval = Convert.ToDateTime(thisValue);
                }

                return reval;
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime(SplitYMD)
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static string ObjToDateSplitYMD(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                return ObjToDate(thisValue).ToString("yyyy-MM-dd");
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime(SplitYMDHMS)
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static string ObjToDateSplitYMDHMS(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                return ObjToDate(thisValue).ToString("yyyy-MM-dd HH:mm:ss");
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime(Y)
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static string ObjToDateY(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                return ObjToDate(thisValue).ToString("yyyy");
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime(YMD)
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static string ObjToDateYMD(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                return ObjToDate(thisValue).ToString("yyyyMMdd");
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime(YMDH)
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static string ObjToDateYMDH(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                return ObjToDate(thisValue).ToString("yyyyMMddHH");
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->datetime(YMDHMS)
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>DateTime</returns>
        public static string ObjToDateYMDHMS(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                return ObjToDate(thisValue).ToString("yyyyMMddHHmmss");
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->bool
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>bool</returns>
        public static bool ObjToBool(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return false;
                }
                if (thisValue != null && thisValue != DBNull.Value && bool.TryParse(thisValue.ToString(), out bool reval))
                {
                    return reval;
                }

                return false;
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->char
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>char</returns>
        public static char ObjToChar(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return ' ';
                }
                if (thisValue != null && thisValue != DBNull.Value && char.TryParse(thisValue.ToString(), out char reval))
                {
                    return reval;
                }

                return ' ';
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->List<string>
        /// </summary>
        /// <param name="thisValue"></param>
        /// <param name="split"></param>
        /// <returns>List<string></returns>
        public static List<string> ObjToStringBySplit(this object thisValue, char[] split = null)
        {
            try
            {
                if (thisValue == null)
                {
                    return new List<string>();
                }

                if (split == null || split.Length == 0)
                {
                    split = new char[] { ';', ';', ',', ',', ' ' };
                }

                return thisValue.ToString().Split(split).ToList();
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->string<string>
        /// </summary>
        /// <param name="thisValue"></param>
        /// <param name="split"></param>
        /// <returns>List<string></returns>
        public static string ObjToStringByReplace(this object thisValue, string[] replace = null)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }

                //-()&"*%()
                if (replace == null || replace.Length == 0)
                {
                    replace = new string[] { "-", "(", ")", "&", "\"", "*", "%", "(", ")", "_" };
                }

                string returnValue = thisValue.ToString();
                foreach (string r in replace)
                {
                    returnValue = returnValue.Replace(r, $"\\{r}");
                }

                return returnValue;
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->base64string
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>string</returns>
        public static string ObjToBase64String(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }
                if (thisValue != null)
                    return Convert.ToBase64String(Encoding.UTF8.GetBytes($"{thisValue}"));

                return "";
            }
            catch (Exception) { throw; }
        }

        /// <summary>
        /// obj->string
        /// </summary>
        /// <param name="thisValue"></param>
        /// <returns>string</returns>
        public static string ObjToStringFromBase64(this object thisValue)
        {
            try
            {
                if (thisValue == null)
                {
                    return "";
                }
                if (thisValue != null)
                    return System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(thisValue.ToString()));

                return "";
            }
            catch (Exception) { throw; }
        }
    }
}
相关推荐
是娇娇公主~3 小时前
C++ 中 std::deque 的原理?它内部是如何实现的?
开发语言·c++·stl
SuperEugene4 小时前
Axios 接口请求规范实战:请求参数 / 响应处理 / 异常兜底,避坑中后台 API 调用混乱|API 与异步请求规范篇
开发语言·前端·javascript·vue.js·前端框架·axios
AI成长日志4 小时前
【datawhale】hello agents开源课程学习记录第5章 智能体应用实践:低代码平台构建指南
学习·低代码·开源
xuxie995 小时前
N11 ARM-irq
java·开发语言
唐青枫5 小时前
C#.NET ReaderWriterLockSlim 深入解析:读写锁原理、升级锁与使用边界
c#·.net
GHL2842710905 小时前
RAG相关问题整理学习
学习·ai
wefly20175 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma1509806 小时前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默6 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
kyriewen116 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript