当前位置: 首页 > news >正文

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

前言

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

方法名方法解释
ObjToIntobject转int
ObjToMoneyobject转double
ObjToStringobject转string
ObjToDecimalobject转decimal
ObjToDateobject转datetime
ObjToDateSplitYMDobject转datetime(yyyy-MM-dd)
ObjToDateSplitYMDHMSobject转datetime(yyyy-MM-dd HH:mm:ss)
ObjToDateYobject转datetime(yyyy)
ObjToDateYMDobject转datetime(yyyyMMdd)
ObjToDateYMDHobject转datetime(yyyyMMddHH)
ObjToDateYMDHMSobject转datetime(yyyyMMddHHmmss)
ObjToBoolobject转bool
ObjToCharobject转char
ObjToStringBySplitobject转list
ObjToBase64Stringobject转base64 string
ObjToStringFromBase64base64 string转object

代码示例

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; }}}
}

相关文章:

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

前言 类型转换帮助类&#xff0c;包含下表中的方法&#xff1a; 方法名方法解释ObjToIntobject转intObjToMoneyobject转doubleObjToStringobject转stringObjToDecimalobject转decimalObjToDateobject转datetimeObjToDateSplitYMDobject转datetime&#xff08;yyyy-MM-dd&…...

【加解密】报文签名与加解密,MD5,RSA,AES使用案例(基于 Java)

需要考虑哪些问题&#xff1f; 在进行报文传输时&#xff0c;有两个问题需要考虑&#xff1a; 消息防篡改加密报文 定义消息结构 为了方便后面使用&#xff0c;这里定义消息结构&#xff1a; public static class Message {public String data; //消息public String sign;…...

新建vue3项目

三种方法 一. 第一种方式 1、操作步骤&#xff1a; 创建项目目录 vue create 项目名称选择配置方式 ? Please pick a preset: #选择一个配置 Default &#xff08;[Vue 3] babel, eslint&#xff09;Default &#xff08;[Vue 2] babel, eslint&#xff09;Manually select …...

出现 Error:Unable to access jarfile xxxx\target\nacos-server.jar 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 执行Nacos中的startup.cmd的时候出现闪退,于是在该脚本的最后一行添加pause,查看因为什么原因闪退 出现的bug如下所示:Error:Unable to access jarfile xxxx\target\nacos-server.jar 截图如下所示: 查看内部文件夹,…...

记录一次API报文替换点滴

1. 需求 各位盆友在日常开发中&#xff0c;有没有遇到上游接口突然不合作了&#xff0c;临时需要切换其他接口的情况&#xff1f;这不巧了&#xff0c;博主团队近期遇到了&#xff0c;又尴尬又忐忑。 尴尬的是临时通知不合作了&#xff0c;事前没有任何提醒&#xff1b; 忐忑…...

PMP项目管理 - 沟通管理

系列文章目录 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in…...

fckeditor编辑器改造示例:增加PRE,CODE控件

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 修改方法&#xff1a;1&#xff09;修改fckco…...

风速预测(五)基于Pytorch的EMD-CNN-LSTM模型

目录 前言 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集&#xff0c;按照8&#xff1a;2划分训练集和测试集 2.2 设置滑动窗口大小为96&#xff0c;制作数据集 3 基于Pytorch的EMD-CNN-LSTM模型预测 3.1 数据加载&…...

单元测试二(理论)-云计算2023.12-云南农业大学

文章目录 一、单选题1、三次握手、四次挥手发生在网络模型的哪一层上&#xff1f;2、互联网Internet的拓扑结构是什么&#xff1f;3、以下哪一种网络设备是工作在网络层的&#xff1f;4、以下哪种关于分组交换网络的说法是错误的&#xff1f;5、以下哪种协议是在TCP/IP模型中的…...

QModelIndex 是 Qt 框架中的一个类,用于表示数据模型中的索引位置

QModelIndex 是 Qt 框架中的一个类&#xff0c;用于表示数据模型中的索引位置。 在 Qt 中&#xff0c;数据模型是一种组织和管理数据的方式&#xff0c;常见的数据模型包括 QAbstractItemModel、QStandardItemModel 和 QSqlQueryModel 等。QModelIndex 类提供了一种标识数据模…...

前端实现一个时间区间内,再次单选功能,使用Antd组件库内日历组件Calendar

需求&#xff1a;需要先让用户选择一个时间区间&#xff0c;然后再这个时间区间中&#xff0c;让用户再次去单选其种特殊日期。 思路&#xff1a; 1.先用Antd组件库中日期选择DatePicker.RangePicker实现让用户选择时间区间 2.在选择完时间区间后&#xff0c;用这个时间区间…...

【运维笔记】Hyperf正常情况下Xdebug报错死循环解决办法

问题描述 在使用hyperf进行数据库迁移时&#xff0c;迁移报错&#xff1a; 查看报错信息&#xff0c;错误描述是Xdebug检测到死循环&#xff0c;可是打印的堆栈确实正常堆栈&#xff0c;没看到死循环。 寻求解决 gpt 说的跟没说一样。。 google一下 直接把报错信息粘贴上去…...

嵌入式开发中的总线与时钟

总线 AHB总线 AHB的全称是"Advanced High-performance Bus",中文翻译就是"高级高性能总线"。这是一种在计算机系统中用于连接不同硬件组件的总线架构,它可以帮助这些组件之间高效地传输数据和信息。这个总线架构通常用于处理速度较快且对性能要求较高的…...

k8s debug 浅谈

一 k8s debug 浅谈 说明&#xff1a; 本文只是基于对kubectl debug浅显认识总结的知识点,后续实际使用再补充案例 Kubernetes 官方出品调试工具上手指南(无需安装&#xff0c;开箱即用) debug-application 简化 Pod 故障诊断: kubectl-debug 介绍 1.18 版本之前需要自己…...

Day10 Liunx高级系统设计11-数据库2

DQL:数据查询语言 查询全表 select * from 表名; 查询指定列 select 列名 1, 列名 2,… from 表名 ; 条件查询 select * from 表名 where 条件 ; 注意&#xff1a; 条件查询就是在查询时给出 WHERE 子句&#xff0c;在 WHERE 子句中可以使用如下运算符及关键 字&#…...

车载导航系统UI界面,可视化大屏设计(PS源文件)

大屏组件可以让UI设计师的工作更加便捷&#xff0c;使其更高效快速的完成设计任务。现分享车载导航系统科技风蓝黑简约UI界面、车载系统UI主界面、车载系统科技风UI界面、首页车载系统科技感界面界面的大屏Photoshop源文件&#xff0c;开箱即用&#xff01; 若需 更多行业 相关…...

工作之踩坑记录

1.i386架构之atol函数使用导致的业务程序错误&#xff1a; 情景:将框架传递的链接地址采用整形保存传输,在i386架构上导致地址比较大&#xff0c;采用atol转型可能导致数据被截断出现异常。 方案:采用atoll更大的数据类型进行处理即可避免该问题。 2.Json库使用注意long int问…...

【深度学习目标检测】四、基于深度学习的抽烟识别(python,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…...

YML学习

讲解YML使用场景、语法和解析 1.基础知识1.1 什么是YML1.2 YML优点1.3 YML使用场景 2.YML语法2.1 基础语法2.2 字面量数据类型2.2.1 字符串2.2.2 NULL2.4.5 时间戳&#xff08;timestamp&#xff09; 2.3 对象\MAP类型2.4 数组/List/Set2.4.1 值为基础类型2.4.2 值为对象2.4.3 …...

华为HCIP认证H12-821题库下

26、6.交换技术核心知识 &#xff08;单选题&#xff09;某交换机运行RSTP协议&#xff0c;其相关配置信息如图所示,请根据命令配置情况指出对于Instance 1&#xff0c;该交换机的角色是: A、根交换机 B、非根交换机 C、交换机 D、无法判断 正确答案是&…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...