C# 常用汇总

时间处理

public static class DateTimeHelper{/// <summary>/// 获取当前时间戳(Unix时间戳)  /// </summary>/// <returns></returns>public static long GetCurrentUnixTimestamp(){DateTimeOffset offset = DateTimeOffset.UtcNow;return Convert.ToInt64((offset - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalSeconds);}/// <summary>/// 将Unix时间戳转换为DateTime /// </summary>/// <param name="unixTimestamp"></param>/// <returns></returns>public static DateTime UnixTimestampToDateTime(long unixTimestamp){DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);dateTime = dateTime.AddSeconds(unixTimestamp).ToLocalTime();return dateTime;}/// <summary>/// 获取当前日期  /// </summary>/// <returns></returns>public static DateTime GetCurrentDate(){return DateTime.Now;}/// <summary>/// 格式化日期时间字符串 /// </summary>/// <param name="dateTime"></param>/// <param name="format"></param>/// <returns></returns>public static string FormatDateTime(DateTime dateTime, string format = "yyyy-MM-dd HH:mm:ss"){return dateTime.ToString(format);}/// <summary>/// 获取与当前日期相差多少天/// </summary>/// <param name="otherTime"></param>/// <returns></returns>public static double GetDaysDifference(DateTime otherTime){ DateTime currentTime = DateTime.Now; TimeSpan timeSpan = currentTime.Subtract(otherTime); double daysDifference = timeSpan.TotalDays; return daysDifference;}}

文件处理

 /// <summary>/// File  操作/// </summary>public class FileHelper{ /// <summary>/// 从文件中读取文本 /// </summary>/// <param name="filePath"></param>/// <returns></returns>public static string ReadTextFromFile(string filePath) { if (!FileExists(filePath)) {return "";} return File.ReadAllText(filePath);}/// <summary>/// 以每行作为界限读取/// </summary>/// <param name="filePath"></param>public static List<string> ReadLineByLineWithFileReadLines(string filePath){return File.ReadLines(filePath).ToList();}/// <summary>/// 写入文本/// </summary>/// <param name="text"></param>/// <param name="filePath"></param>public static void WriteTextToFile(string filePath, string text){File.WriteAllText(filePath, text);}/// <summary>/// 追加文本到文件  /// </summary>/// <param name="text"></param>/// <param name="filePath"></param>public static void AppendTextToFile(string filePath, string text){ File.AppendAllText(filePath, text);}/// <summary>/// 换行追加文本/// </summary>/// <param name="text"></param>/// <param name="filePath"></param>public static void AppendTextByLineToFile(string filePath, string text){File.AppendAllText(filePath, Environment.NewLine + text);}/// <summary>/// 删除文件/// </summary>/// <param name="filePath"></param>public static void DeleteFile(string filePath){File.Delete(filePath);}/// <summary>/// 检查文件是否存在  /// </summary>/// <param name="filePath"></param>/// <returns></returns>public static bool FileExists(string filePath) { return File.Exists(filePath); }/// <summary>/// 检查文件夹是否存在/// </summary>/// <param name="path"></param>/// <returns></returns>public static bool DirectoryExists(string path){return Directory.Exists(path);}/// <summary>/// 创建文件夹/// </summary>/// <param name="path"></param>public static void CreateDirectory(string path){Directory.CreateDirectory(path);} }

JSON处理

// Newtonsoft.Json/// <summary>///  JSON 处理/// </summary>public static class JsonHelper{/// <summary>/// 序列化对象到 JSON 字符串  /// </summary>/// <param name="obj"></param>/// <returns></returns>public static string SerializeObject(object obj){return JsonConvert.SerializeObject(obj);}/// <summary>/// 反序列化 JSON 字符串到对象  /// </summary>/// <typeparam name="T"></typeparam>/// <param name="json"></param>/// <returns></returns>public static T DeserializeObject<T>(string json){return JsonConvert.DeserializeObject<T>(json);}/// <summary>/// 序列化对象到格式化(缩进)的 JSON 字符串 /// </summary>/// <param name="obj"></param>/// <returns></returns>public static string SerializeObjectIndented(object obj){return JsonConvert.SerializeObject(obj, Formatting.Indented);}/// <summary>/// 将对象序列化为 JSON 并保存到文件/// </summary>/// <param name="obj"></param>/// <param name="filePath"></param>public static void SerializeObjectToFile(object obj, string filePath){File.WriteAllText(filePath, SerializeObject(obj));}/// <summary>/// 从文件读取 JSON 并反序列化为对象  /// </summary>/// <typeparam name="T"></typeparam>/// <param name="filePath"></param>/// <returns></returns>public static T DeserializeObjectFromFile<T>(string filePath){string json = File.ReadAllText(filePath);return DeserializeObject<T>(json);}}

字符串处理

public static class StringHelper{/// <summary>/// 转换为大写/// </summary>/// <param name="input"></param>/// <returns></returns>public static string ToUpperCase(string input){return input.ToUpper();}/// <summary>/// 转换为小写  /// </summary>/// <param name="input"></param>/// <returns></returns>public static string ToLowerCase(string input){return input.ToLower();}/// <summary>/// 去除字符串两端的空白字符/// </summary>/// <param name="input"></param>/// <returns></returns>public static string TrimString(string input){return input.Trim();}/// <summary>/// 格式化字符串(使用string.Format的简化版) /// </summary>/// <param name="format"></param>/// <param name="args"></param>/// <returns></returns>public static string FormatString(string format, params object[] args){return string.Format(format, args);}/// <summary>/// 将字符串转换为字节数组/// </summary>/// <param name="input"></param>/// <returns></returns>public static byte[] StringToByteArray(string input){return Encoding.UTF8.GetBytes(input);}/// <summary>/// 将字节数组转换为字符串 /// </summary>/// <param name="bytes"></param>/// <returns></returns>public static string ByteArrayToString(byte[] bytes){return Encoding.UTF8.GetString(bytes);}/// <summary>///  MD5加密方法  /// </summary>/// <param name="input"></param>/// <returns></returns>public static string GetMD5Hash(string input){using (MD5 md5Hash = MD5.Create()){byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));StringBuilder sBuilder = new StringBuilder();for (int i = 0; i < data.Length; i++){sBuilder.Append(data[i].ToString("x2"));}return sBuilder.ToString();}}/// <summary>/// 判断当前字符串与MD5加密后的字符串是否一致的方法/// </summary>/// <param name="input"></param>/// <param name="storedHash"></param>/// <returns></returns>public static bool IsMD5HashMatch(string input, string storedHash){string computedHash = GetMD5Hash(input);return computedHash.Equals(storedHash, StringComparison.OrdinalIgnoreCase);}/// <summary>/// 判断字符串是否包含大小写字母和数字,且长度大于7 /// </summary>/// <param name="input"></param>/// <returns></returns>public static bool IsValidString(string input){if (input == null || input.Length <= 7){return false;}bool hasUpper = input.Any(char.IsUpper);bool hasLower = input.Any(char.IsLower);bool hasDigit = input.Any(char.IsDigit);return hasUpper && hasLower && hasDigit;}/// <summary>/// 判断字符串是否为url/// </summary>/// <param name="url"></param>/// <returns></returns>public static bool IsValidUrl(string url){// 如果字符串为空或只包含空白字符,则返回false  if (string.IsNullOrWhiteSpace(url)){return false;}Regex UrlRegex = new Regex(@"^http://(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})$",RegexOptions.IgnoreCase);return UrlRegex.IsMatch(url);}private static readonly Regex UrlRegex = new Regex(@"^(http(?:s)?://)?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(?::\d+)?(/[\w ./-]*)?$");/// <summary>/// 判断字符串是否为url/// </summary>/// <param name="url"></param>/// <returns></returns>public static bool IsPossibleUrlWithIpAndPort(string url){ return UrlRegex.IsMatch(url);}private static readonly Regex Ipv4Regex = new Regex(@"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");/// <summary>/// 匹配IPv4地址  /// </summary>/// <param name="ip"></param>/// <returns></returns>public static bool IsValidIPv4(string ip){ return Ipv4Regex.IsMatch(ip);}}

简易日志处理

public enum LogLevel{Log,Debug,Info,Warn,Error}public class SimpleLogger{private static string _baseLogPath;private static string _currentDateFolder;private static string logs = "Logs";private static string GetTodayDateString(){return DateTime.Now.ToString("yyyyMMdd");} private static void CreateLogFolderIfNotExists(){string fullPath = System.IO.Path.Combine(_baseLogPath, _currentDateFolder);if (!System.IO.Directory.Exists(fullPath)){System.IO.Directory.CreateDirectory(fullPath);}}/// <summary>/// 写日志/// </summary>/// <param name="logLevel"></param>/// <param name="message"></param>public static void WriteLog(LogLevel logLevel, string message){ string debugPath = AppDomain.CurrentDomain.BaseDirectory; // 写入文件夹路径string logPath = System.IO.Path.Combine(debugPath, logs);_baseLogPath = logPath;_currentDateFolder = GetTodayDateString();CreateLogFolderIfNotExists();string logFileName = $"{logLevel.ToString().ToLower()}_{_currentDateFolder}.log";string fullPath = System.IO.Path.Combine(_baseLogPath, _currentDateFolder, logFileName);using (System.IO.StreamWriter sw = System.IO.File.AppendText(fullPath)){sw.WriteLine($"{DateTime.Now}: [{logLevel.ToString()}] {message}");}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt---文件系统

一、基本文件操作 1. QFile对文件进行读和写 QFile file( path 文件路径) 读&#xff1a; file.open(打开方式) QlODevice::readOnly 全部读取->file.readAll()&#xff0c;按行读->file.readLine()&#xff0c;atend()->判断是否读到文件尾 …

Java网络编程基础

Java网络编程基础主要涉及进程间通信、网络通信协议、IP地址和端口以及Java提供的网络应用编程接口等核心概念。 进程间通信是Java网络编程的基础。进程是运行中的程序&#xff0c;而进程间通信则是指不同进程之间进行数据交换和共享信息的过程。在Java中&#xff0c;进程间的…

STM32存储左右互搏 USB接口FATS文件读写U盘

STM32存储左右互搏 USB接口FATS文件读写U盘 STM32的USB接口可以例化为Host主机从而对U盘进行操作。SD卡/MicroSD/TF卡也可以通过读卡器转换成U盘使用。这里介绍STM32CUBEIDE开发平台HAL库实现U盘FATS文件访问的例程。 USB接口介绍 常见的USB接口电路部分相似而有不同的连接器…

K8S -----二进制搭建 Kubernetes v1.20

目录 一、准备环境 1.1 修改主机名 1.2 关闭防火墙&#xff08;三台一起&#xff0c;这里只展示master01&#xff09; 1.3 在master添加hosts&#xff08;依旧是三台一起&#xff09; 1.4 调整内核参数并开启网桥模式 二、部署docker引擎 三、部署 etcd 集群 1.在mast…

15.JUC原子类

文章目录 JUC原子类1.JUC中的Atomic原子操作包1.1. 基本原子类&#xff08;Basic Atomic Classes&#xff09;1.2. 数组原子类&#xff08;Array Atomic Classes&#xff09;1.3. 引用原子类&#xff08;Reference Atomic Classes&#xff09;4. 字段更新原子类&#xff08;Fie…

StackQueue+泛型简单理解

&#x1f341; 个人主页&#xff1a;爱编程的Tom&#x1f4ab; 本篇博文收录专栏&#xff1a;Java专栏&#x1f449; 目前其它专栏&#xff1a;c系列小游戏 c语言系列--万物的开始_ &#x1f389; 欢迎 &#x1f44d;点赞✍评论⭐收藏&#x1f496;三连支持一…

ddpm Denoising Diffusion Probabilistic Model 学习笔记

目录 Stable Diffusion 文章的贡献抽象出来就两个 潜空间上做扩散生成 ddpm(Denoising Diffusion Probabilistic Model)学习笔记 算法原理 unet预测噪声 unet推理过程 重参数化技巧 &#xff08;1&#xff09;利用前一时刻的 xt-1 得到任意时刻的噪声图片 xt&#xff…

LeetCode2215找出两数组的不同

题目描述 给你两个下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;请你返回一个长度为 2 的列表 answer &#xff0c;其中&#xff1a;answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整数组成的列表。answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整数组…

Linux poweroff命令教程:如何实现一键关机(附实例详解和注意事项)

Linux poweroff命令介绍 poweroff命令是用来关闭系统的。当你执行这个命令时&#xff0c;它会发送一个信号给系统&#xff0c;告诉系统关闭所有的进程&#xff0c;然后关闭系统。这个命令非常有用&#xff0c;特别是在你需要远程关闭系统&#xff0c;或者你的系统没有图形用户…

Autosar架构

蓝框那种叫component&#xff0c;绿框的叫function cluster。 接口 有三种接口&#xff0c;RTE跟SWC之间链接的叫Autosar Interface&#xff0c;RTE跟BSW的Components链接是Standardized Interface&#xff0c;RTE跟BSW的services链接的是Standardized Autosar Interface。 St…

项目部署到线上proxytable代理失效nginx报404的问题

我的项目是在vue的config文件夹中的index.js中配置了接口地址 &#xff0c;本地跑的时候都能访问&#xff0c;放到线上就报404&#xff1b; module.exports {dev: {// PathsassetsSubDirectory: static,assetsPublicPath: /,proxyTable: {/xxx: {target: http://xxxxxxxx:xxx…

分享四种CAD图纸加密方法,严防盗图

在数字化时代&#xff0c;cad图纸的盗用和非法传播问题日益突出。对于企业和设计师来说&#xff0c;保护设计成果的安全性和原创性&#xff0c;采取有效的cad加密方法至关重要。本文将分享四种cad加密方法&#xff0c;帮助您严防盗图&#xff0c;保护图纸安全。 使用cad软件内…

网络协议的分类

1.概要 网络协议可以分为三类&#xff1a; 封装协议路由协议功能类协议 2.分类说明 OSPF报文直接调用_ IP协议__协议进行封装&#xff0c;以目的地址_244.0.0.5 __发送到所有的OSPF路由器? 244.0.0.1 所有主机&#xff1b;244.0.0.2 所有路由器&#xff1b;244.0.0.6 指定…

【前端每日一题】day5

JS 实现继承的几种方式 在JavaScript中&#xff0c;实现继承的几种方式包括原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和组合式继承。 原型链继承&#xff1a; function Parent() {this.name Parent; } Parent.prototype.sayHello function() {console.…

当它还是幼生期的时候,及早离开它!

当我们有丰富的精神生活时&#xff0c;充实的知识吸收储备时&#xff0c;为自己的每一点进步而欣慰时&#xff0c;我们就不会有失败的忧虑。也不会有孤单的自怜。 没有人是弱者&#xff0c;每个人都有自己活着的方式&#xff0c;当你内心强大时&#xff0c;你会尊重每一个“弱者…

Vue+springboot的批量删除功能

vue前台 <div style"margin-bottom: 10px"><el-button type"primary" plain click"handleAdd">新增</el-button><el-button click"delBatch" type"danger" plain style"margin-left: 5px"…

Spring Cloud 背后技术详解

Spring Cloud 是基于 Spring Boot 的一套微服务架构解决方案。它为开发者提供了一系列的工具&#xff0c;用于快速构建分布式系统中的一些常见模式&#xff08;例如配置管理、服务发现、断路器等&#xff09;。Spring Cloud 利用 Spring Boot 的自动配置和独立运行能力&#xf…

C语言例题41、八进制转换为十进制

#include<stdio.h>void main() {int x;printf("请输入一个8进制整数&#xff1a;");scanf("%o", &x);printf("转换成十进制后的整数为%d\n", x); }运行结果&#xff1a; 本章C语言经典例题合集&#xff1a;http://t.csdnimg.cn/FK0Qg…

Java基础(33)Java Web拦截器作用和用法

Java Web拦截器&#xff08;Interceptor&#xff09;是Java Web开发中一个重要的概念&#xff0c;它允许开发者在处理HTTP请求和响应之前或之后执行特定的代码&#xff0c;从而实现如权限检查、日志记录、事务管理等功能。拦截器可以作用于Java EE的Servlet、Spring框架、Strut…

redis试题按知识点归类(四)

十六、实战应用 1.如何使用 Redis 存储用户会话&#xff1f; 2.Redis 在电子商务平台中的应用是什么&#xff1f; 3.如何使用 Redis 进行实时数据分析&#xff1f; 十七、面试题综合 1.描述一次你解决 Redis 性能问题的经历。 2.你如何理解 Redis 中的“单线程”模型&…