【.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; }
        }
    }
}
相关推荐
AI绘画哇哒哒21 分钟前
【收藏必看】大模型智能体六大设计模式详解:从ReAct到Agentic RAG,构建可靠AI系统
人工智能·学习·ai·语言模型·程序员·产品经理·转行
小奶包他干奶奶4 小时前
Webpack学习——Loader(文件转换器)
前端·学习·webpack
小奶包他干奶奶4 小时前
Webpack学习——原理理解
学习·webpack·devops
励志成为美貌才华为一体的女子5 小时前
强化学习PPO和GRPO逻辑学习
学习
tobebetter95275 小时前
How to manage python versions on windows
开发语言·windows·python
meichaoWen5 小时前
【Vue3】vue3的全面学习(一)
前端·javascript·学习
FFF团团员9095 小时前
树莓派学习笔记3:LED和Button
笔记·学习
9***P3346 小时前
PHP代码覆盖率
开发语言·php·代码覆盖率
CoderYanger6 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
jllllyuz6 小时前
Matlab实现基于Matrix Pencil算法实现声源信号角度和时间估计
开发语言·算法·matlab